我正在创建基本应用程序以从Firestore检索用户数据,并且如果用户是新用户(在Firestore中,即文档不应该存在),我会添加欢迎词(向DB提供一些默认数据)。
private fun createUserIfNeeded(user: FirebaseUser) {
fireBaseFireStore.collection("Users").document(user.uid).get().addOnCompleteListener {
if (it.isSuccessful && !it.result!!.exists()) {
val defaultData =
hashMapOf("head" to "Hello", "body" to "Welcome to NoteIt...")
fireBaseFireStore
.collection("Users")
.document(user.uid)
.collection("Notes")
.document("Default")
.set(defaultData)
}
}
}
当我在上面运行代码时,即使文档存在,document.result.exist
也总是false
。
我尝试使用addOnSuccessListener
也是同样的结果。
我做错什么了吗?
我提到了许多与此相关的问题,但解决方案有所帮助。
PS:Firebase及其API的新手
更新: 如果我要检查内部集合和文档中的任何一个,那么结果就可以正常工作
private fun createUserIfNeeded(user: FirebaseUser) {
val notesRef = fireBaseFireStore
.collection("Users")
.document(user.uid)
.collection("Notes")
notesRef
.get()
.addOnCompleteListener {
if (it.result == null || it.result!!.documents.size == 0) {
val defaultData = hashMapOf("head" to "Hello", "body" to "Welcome to NoteIt...")
notesRef
.document("Default")
.set(defaultData)
}
}
}
我无法理解问题所在。
答案 0 :(得分:2)
尝试此操作,卸载应用程序并重新安装,有时在开发期间需要刷新您数据库的Firestore本地缓存版本
在开发时可能会错误地在Firestore控制台中查看错误的数据库,可以说您的应用程序具有开发人员版本和生产版本,只需要一点点咖啡,一个人就会看错东西