【问题标题】:Fetch all documents in collection - Firebase Firestore iOS获取集合中的所有文档 - Firebase Firestore iOS
【发布时间】:2021-07-01 16:56:37
【问题描述】:

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

如果我获取“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)
                }
            })
        }
    }

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

【问题讨论】:

    标签: ios swift firebase google-cloud-firestore


    【解决方案1】:

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

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

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

    【讨论】:

    • 为了快速进行完整性检查,如果我查询一个集合 1000 次,并且每个查询返回 0 个文档,那将被视为 0 次读取?其次,您能否扩展并指出一些有关您关于“节省数据使用”的说明的文档。通过使用可调用的云函数?
    • 根据this 的回答,您需要为每次查询支付一次阅读费用。道格·史蒂文森就是那个人,this is a great article on https functions
    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多