快速读取写入Firestore文档和集合

时间:2019-05-26 15:19:09

标签: swift google-cloud-firestore

我尝试从IOS应用程序

使用Firestore中的5个不同“集合”的新数据进行更新。我能够做到,但仅限1个收藏集。我不知道如何立即将更新推送到所有5个集合。任何帮助是极大的赞赏。

import UIKit
import Firebase

class itemDataViewController: UIViewController {

    @IBOutlet var itemLabels: [UILabel]!
    @IBOutlet weak var testLabel: UILabel!

    @IBOutlet weak var firstItemField: UITextField!
    @IBOutlet weak var secondItemField: UITextField!
    @IBOutlet weak var thirdItemField: UITextField!
    @IBOutlet weak var fourthItemField: UITextField!
    @IBOutlet weak var fithItemField: UITextView!

    var docRef: DocumentReference!
    var infoListener: ListenerRegistration!

    @IBAction func updateData(_ sender: Any) {
        guard let firstItemText = firstItemField.text, !firstItemText.isEmpty else { return }
        guard let secondItemText = secondItemField.text, !secondItemText.isEmpty else { return }
        guard let thirdItemText = thirdItemField.text, !thirdItemText.isEmpty else { return }
        guard let fourthItemText = fourthItemField.text, !fourthItemText.isEmpty else { return }
        guard let fithItemText = fithItemField.text, !fithItemText.isEmpty else { return }


        let dataToSave: [String: Any] = ["firstItem": firstItemText]
        docRef.setData(dataToSave) { (error) in
            if let error = error {
                print("Oh no! Could not save: \(error.localizedDescription)")
            } else {
                print("Data Saved")
          }
        }
       }
   override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
            infoListener = docRef.addSnapshotListener { (docSnapshot, error) in
                guard let docSnapshot = docSnapshot, docSnapshot.exists else { return }
                let myData = docSnapshot.data()
                let firstItemUpdate = myData?["firstItem"] as? String ?? ""
                self.firstItemField.text = "\(firstItemUpdate)"
            }
           }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillAppear(animated)
        infoListener.remove()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        docRef = Firestore.firestore().document("2/firstItem")

    (itemLabels as NSArray).setValue(10, forKey: "cornerRadius")

        // Do any additional setup after loading the view.
    }
}

0 个答案:

没有答案