ios - 获取集合中的所有文档 - Firebase Firestore iOS

标签 ios swift firebase google-cloud-firestore

我有一个“用户”集合,其中集合中的每个文档代表一个用户。

如果我获取“users”集合中的所有文档,这是否被视为对 Firebase 使用配额的 1 次读取或 X 次读取(X 是所述集合中的文档数量)?

当前代码如下所示:

static func fetchAllUsers(completion: @escaping([TFUser]) -> Void) {
        var users = [TFUser]()
        
        Firestore.firestore().collection("users").getDocuments { (snapshot, error) in
            snapshot?.documents.forEach({ (document) in
                let dictionary = document.data()
                let user = TFUser(dictionary: dictionary)
                users.append(user)
                
                if users.count == snapshot?.documents.count {
                    completion(users)
                }
            })
        }
    }

非常感谢对此事的任何见解。提前致谢。

最佳答案

查询集合时,您需要为查询返回的每个文档付费。

如果可能,您可以使用客户端 SDK 提供的 .where() 功能,而不是提取所有文档并对其进行排序以查找所需的文档。

如果您想节省流量,由于客户端SDK不支持文档的部分读取,您可以创建一个HTTPS可调用的云函数,只将所需的文档数据发送回客户端。

关于ios - 获取集合中的所有文档 - Firebase Firestore iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66959645/

相关文章:

iphone - 停止 UIAlertView 关闭

ios - iOS应用程式当机: “Selector name found in current argument registers: appendDictionary:into:”

ios - 标签栏重叠 View 后面

ios - Google App Indexing - 如何测试它?

javascript - 为什么 req.cookies 未定义?

ios - 自定义 UINavigationItem 字体

ios - 如何在 iOS 中单击按钮打开带有 YouTube ID 的 YouTube 应用

angular - NullInjectorError : No provider for InjectionToken angularfire2. 应用程序选项

Android Firebase 在单个路径中检索所有数据并将其存储在 SQLite 中

iphone - tableView:commitEditingStyle:forRowAtIndexPath:导致断言失败