Я создаю базовое приложение для извлечения пользовательских данных из Firestore и, если пользователь новый (в Firestore, т. Е. Документ не должен существовать), я добавляю приветствие (некоторые данные по умолчанию в БД).
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
также тот же результат.
Я что-то не так делаю?
Я ответил на многие вопросы, связанные с этим, но решение помогло.
P.S: новинка в Firebase и его API
UPDATE:
Если я пытаюсь проверить наличие какой-либо внутренней коллекции и документа, то результат работает нормально
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)
}
}
}
Я не могу понять, в чем проблема.