首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:我如何重复一个getDoc请求来修复?

Swift:我如何重复一个getDoc请求来修复?
EN

Stack Overflow用户
提问于 2022-01-26 01:37:38
回答 1查看 108关注 0票数 0

我已经可以检查集合中是否存在文档。但是,在尝试不同的路径名时,我无法反复检查相同的集合。

例如,我的集合名是用户的UID。此集合中可以有无限数量的文档。当用户添加项目时,这些文档的标题为"UID-0“、"UID-1”、"UID-2“等等。

每当它找到一个已经存在的文档(如"UID-0“)时,它就会将路径请求更改为"UID-+=1”,直到它的数量超过了文档,并且它能够创建和使用该路径名。

每个文档包含大约十几个相同数据模型的字段,当然也包含不同的数据。

代码语言:javascript
复制
var docAlreadyExists: Bool = true
var multipleUserFencesIdCount: Int = 0
var newID: String = ""
let id = self.auth.currentUser?.uid ?? ""

repeat {
print("1")
self.fencesInfoCollection.document("Live").collection(id).document(newID).getDocument(completion: { document, error in
print("2")
    if let document = document, document.exists {
        print("EXISTS")
        multipleUserFencesIdCount += 1
        newID = newID.dropLast() + "\(multipleUserFencesIdCount)"
    } else {
        print("DOES NOT EXIST")
        docAlreadyExists = false
    }
})
} while docAlreadyExists

尽管如此,我如何反复检查文档是否存在,直到路径名称超过其他文件名,并能够使用新数据创建新文档。

编辑:

重复调用1是正确的,但是.getDoc从不调用,因为从来没有打印过2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 03:32:40

我想出了一个更好的解决方案来实现我的目标,而不是尝试用不同的in重复调用,我现在正在获取所有的文档,并计算集合中有多少文档。

代码语言:javascript
复制
self.fencesInfoCollection.document(id).collection("Live").getDocuments(completion: { document, error in
                    if let document = document, document.isEmpty {
                        print("EMPTY")
                    } else {
                        print("DOC1: \(String(describing: document?.count))")
                    }
                })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70857767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档