很难确定这是否算作读/多次读/我是否会收取数据库成本的负担?

时间:2019-07-02 08:33:57

标签: swift firebase google-cloud-firestore

我目前正在开发一个以Google Cloud Firestore作为后端的iOS应用,我正在使用一些侦听器来查找数据是否已更新,然后将其相应地推送到我的设备上。我编写了此函数,该函数侦听是否为true的值,并据此将更新我的应用程序中的动画。问题是我不知道我是否正确编写了它,并且如果不需要的话,也不想从数据库中进行不必要的读取。

func dingAnimation() {
        let identifier = tempDic![kBOUNDIDENTIFIER] as! String
        if identifier != "" {
            dingListener = reference(.attention).document(identifier).addSnapshotListener({ (snapshot, error) in
                if error != nil {
                    SVProgressHUD.showError(withStatus: error!.localizedDescription)
                    return
                }
                guard let snapshot = snapshot else { return }
                let data = snapshot.data() as! NSDictionary
                for dat in data {
                    let currentId = FUser.currentId() as! String
                    let string = dat.key as! String
                    if string == currentId {
                    } else {
                        let value = dat.value as! Bool
                        self.shouldAnimate = value
                        self.animateImage()
                    }
                }
            })
        }
    }

1 个答案:

答案 0 :(得分:0)

这可能会对您有所帮助。

从Firestore DOCS-了解Cloud Firestore计费

https://firebase.google.com/docs/firestore/pricing

  

收听查询结果

     

Cloud Firestore允许您收听查询结果并在查询结果更改时获取实时更新。

     

当您收听查询结果时,每次添加或更新结果集中的文档时,您都要收取阅读费用。由于文档已更改而从结果集中删除文档时,还会向您收取阅读费用。(相反,当文档被删除时,您无需支付阅读费用。)

     

此外,如果侦听器被断开了30分钟以上(例如,如果用户离线),则您将被收取费用,就像您已经发出了全新查询。