Я не могу вызвать «snapshot.documentChanges» в Firestore addSnapshotListener

#ios #swift #firebase #google-cloud-firestore

#iOS #swift #firebase #google-облако-firestore

Вопрос:

Я не могу вызвать snapshot.documentChanges addSnapshotListener

В нем говорилось Value of type 'DocumentSnapshot' has no member 'documentChanges'

Xcode 10.2, Swift 5, Firestore 5.10.0 и более подробная информация о других библиотеках приведена ниже

     fileprivate func setupSnapshotListener() {
        let coupleId = "B9C950640E1B3740E98ACB93E669C65766F6670DD1609BA91FF41052BA48C6F3"

        let ref = Firestore.firestore().collection("couples").document(coupleId).collection("vibrations").document("vibrationStatus")

        ref.addSnapshotListener { (querySnapshot, err) in
            guard let snapshot = querySnapshot else {
                print(err)
                return
            }

            snapshot.documentChanges.forEach { diff in
                if (diff.type == .added) {
                    print("New city: (diff.document.data())")
                }
                if (diff.type == .modified) {
                    print("Modified city: (diff.document.data())")
                }
                if (diff.type == .removed) {
                    print("Removed city: (diff.document.data())")
                }
            }
        }
    }
  

Podfile

   pod 'Firebase/Firestore’,’~>5.10.0’
  pod 'Firebase/Auth’,’~>5.10.0’
  pod 'Firebase/Storage’,’~>5.10.0’
  pod 'Firebase/Core’
  pod 'GoogleAppMeasurement', '~> 5.2.0'
  pod 'JGProgressHUD','~>2.0.3'
  pod 'GoogleUtilities'
  

Я ожидал использовать addListener , как указано в документе Google Firebase, но я не могу позвонить documentChanges !!

Комментарии:

1. Вы ссылаетесь на документ вместо выполнения запроса (как это делается в примере firestore на их веб-сайте). Вот почему вы получаете значение типа ‘DocumentSnapshot’ не имеет члена ‘documentChanges’

2. @AchidFarooq Я не совсем понимаю, что вы имеете в виду. Какой пример запроса?

3. Нет проблем, запрос выглядит следующим образом -> Firestore.firestore().collection(«города»).whereField(«состояние», равнозначно: «CA») То, что у вас есть, выглядит так -> Firestore.firestore ().collection(«пары»).document(coupleId).коллекция («вибрации»).document («vibrationStatus») Вы специально ищете документ вместо выполнения запроса. В firestore есть разница в запросе () в DocumentReference ()

4. @AchidFarooq Большое вам спасибо!!! Это работает!! спасибо, брат

5. нет проблем, удачи!