首页 > 解决方案 > 在侦听器不断触发后,Firestore 无法获取完整文档

问题描述

好的,发生了一些非常奇怪的事情。有一个即将投入生产的应用程序。这就是应用程序的功能

所以我在模拟器的应用程序中测试另一个功能,一切正常。我在真实设备上登录的同一用户并行运行该应用程序,这是构建后发生的情况:

这是问题:

Firestore 上的 30 个字段

但是在同一用户登录的模拟器上,它工作正常

可能是什么问题?这个特定用户是否有一些损坏的缓存?Firestore 是一款可靠的产品,因此以前从未遇到过这样的事情。

这是监听器代码:

    @objc func viewEntersForeground(){
        guard let currentUid = Auth.auth().currentUser?.uid else {return}
        let ref = Firestore.firestore().collection("users").document(currentUid)
        userListener = ref.addSnapshotListener({ (snapshot, error) in
            if let error = error{
                let alertController = ErrorAlertController(errorText: "\(error.localizedDescription)", errorTitle: "Something's wrong", viewController: self)
                alertController.showAlertController()
                return
            }
            
            //THE BELOW DICTIONARY FETCHES ONLY TWO FIELDS
            guard let dictionary = snapshot?.data() else {return}
            self.userDictionary = dictionary
            self.user = User(dictionary: dictionary)
            
            self.checkIfUserExists()
            if self.user?.uid == "" || self.user?.uid == nil {
                return
            }
            
            self.passDataToInbox()
            self.passDataToSettings()
            self.checkIfFirTokenExists()
            self.checkIfProfilePictureExists()
            
            if self.user?.userState == 3{
                self.isUserState3 = true
            } else {
                self.userState = self.user?.userState
            }
        })
    }

标签: iosswiftfirebasegoogle-cloud-firestore

解决方案


推荐阅读