Edit3 :好的,这似乎是Firebase的问题,其他人在推特上也提到了同样的问题。我还联系了支持部门。
一段处理创建文档的Swift代码突然停止工作。没有引发任何错误,Firebase在日志中没有抱怨,我可以从控制台确认未创建文档,也可以确认设备具有正常的Internet连接。为了确保安全,我还为Firebase禁用了离线持久性。
当我尝试调试它时,调试器会直接跳过处理错误或成功的代码块,从不运行它(即从不完成Firestore请求?)。
这是代码
func createConversation(){
let conversation : [String : Any] = ["owners" : [
UserProfile().getProfile().uid!],
"seeking" : true,
"timestamp" : Timestamp(date: Date())
]
var ref: DocumentReference? = nil
ref = DB().firestore().collection("Conversations").addDocument(data: conversation){ err in
if let err = err {
print("Error creating a convo: \(err)")
} else {
print("Conversation created with ID: \(ref!.documentID)")
StateMachine().action(a: .seekingStarted(ref!.documentID))
}
print("Conversation Creation finished")
}
let documentID = ref?.documentID
print(ref.debugDescription)
}
我不确定如何解决这个问题,有什么想法吗?
编辑:好的,问题不仅限于此代码块,似乎Firebase无法与服务器通信。我已经等了5分钟以上,addDocument才返回(有错误或成功),但从未发生。
我注意到在启动App时BoringSSL有点抱怨,但这并不新鲜,而且其他Firebase服务也没有问题,它们运行正常-读取和创建数据没有问题。
Edit2 :显然,我可以从Firestore中获取收藏夹和文档,该问题似乎仅限于创建文档/收藏夹。
答案 0 :(得分:0)
文档创建操作会花费一些时间,如果将断点放在异步完成块中,您肯定会得到错误或成功。