#swift #firebase #firebase-realtime-database #google-cloud-firestore #swift5
# #swift #firebase #firebase-база данных в реальном времени #google-облако-firestore #swift5
Вопрос:
Я создал приложение для заказа еды, и я хочу создать другое приложение для чтения данных firestore из него, я провел много исследований, но не нашел способа сделать это.
Я хочу, чтобы, если FireStore получит новые данные, которые являются FirstName, LastName, area, PhoneNumber из первого приложения, я хотел бы прочитать их во втором приложении, возможно ли это?
Это мой код
import UIKit
import Firebase
class infoViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var firstName: UITextField!
@IBOutlet var lastName: UITextField!
@IBOutlet var phoneNumber: UITextField!
@IBOutlet var area: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
overrideUserInterfaceStyle = .light
firstName.delegate = self
lastName.delegate = self
phoneNumber.delegate = self
area.delegate = self
let Tap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
view.addGestureRecognizer(Tap)
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
let db = Firestore.firestore()
var ref: DocumentReference? = nil
@IBAction func checkOut(_ sender: UIButton) {
ref = db.collection("check order").addDocument(data: [
"firstname": firstName.text!,
"lastname": lastName.text!,
"area": area.text!,
"phone": phoneNumber.text!
]
)
if firstName.text == "" || lastName.text == "" || phoneNumber.text == "" || area.text == "" {
let optionMenu = UIAlertController(title: nil, message: "Please complete your infrmation", preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "OK", style: .cancel, handler:
nil)
optionMenu.addAction(cancelAction)
self.present(optionMenu, animated: true, completion: nil)
}
}
}
Комментарии:
1. Привет, добро пожаловать в StackOverflow. Что вы подразумеваете под отправкой данных в разные приложения? Вы имеете в виду разные viewcontrollers / классы или разные приложения для iOS?
2. @LucaSfragara эй, я имею в виду другое приложение для iOS
3. @LucaSfragara я думаю, вы поняли идею, но возможно ли получать уведомления, если в firestore сохраняются новые данные?
4. Попробуйте взглянуть на триггеры FireBase firebase.google.com/docs/functions/firestore-events . Дайте мне знать, если ответ, который я опубликовал, полезен.
5. @LucaSfragara да, это полезно, спасибо, но проблема в том, что если firestore получил новый список данных, как я могу отправить его во второе приложение?
Ответ №1:
У вас должно быть первое приложение для загрузки данных в firestore. (просто создайте новый документ для каждой загрузки в списке). Затем во втором приложении выполните запрос по тому же списку и проверьте наличие новых документов. Если есть новые документы, просто принесите их.
Ответ №2:
У вас может быть два разных приложения, которые «разговаривают» с одной и той же Firebase. Просто добавьте приложение в проект Firestore в консоли, загрузите и установите конфигурацию.
Предположим, вы хотите записать данные с помощью App_A и прочитать данные с помощью App_B . Это простой вопрос добавления слушателя (наблюдателя) Firebase в App_B в ту же коллекцию, в которую App_A записывает свои данные.
Смотрите документацию по прослушиванию обновлений в реальном времени
Когда данные записываются из App_A, Firebase отправляет событие в App_B, содержащее записанные данные, чтобы App_B мог их обработать.
Если вы ищете какие-либо данные, просто добавьте прослушиватель в коллекцию, который представит любые данные, которые были добавлены, изменены или удалены.
Если вы хотите прослушать определенные данные, вы можете ограничить результаты, добавив запрос; например, предположим, что ваш пользователь находится в Техасе, и этот пользователь должен получать уведомления только о событиях, которые происходят в Техасе.
App_B добавит прослушиватель к тому же узлу, который App_A также записывает данные, и эти данные должны включать поле для имени состояния; тогда App_B будет прослушивать любые документы, содержащие это имя состояния:
db.collection("some_collection").whereField("state", isEqualTo: "Texas")
Комментарии:
1. я думаю, что нашел то, что мне нужно, это триггеры облачного firestore firebase.google.com/docs/functions/firestore-events но проблема в том, что я новичок в разработке, и я не знаю, как использовать node.js в swift.