如何做到以下几点:
1)如果文档存在,请阅读它,并更新应用程序标记字段。
2)如果文档不存在,请使用默认值设置所有字段。
我试图通过Firestore事务实现这一目标,但在第二种情况下失败了。
let ref = Firestore.firestore().collection("users").document((user?.uid)!)
Firestore.firestore().runTransaction({ (transaction, errorPointer) -> Any? in
let userDoc : DocumentSnapshot
do {
try userDoc = transaction.getDocument(ref)
}
catch _ as NSError {
return nil
}
})
}
我在firebaseLogin方法中调用此方法。基本上,提供更多上下文,如果用户正在创建他的帐户(例如通过Facebook),请设置名称和电子邮件等默认字段。如果用户已有帐户,则仅更新applicationToken(对于FCM)。