[英]Firestore: Check if virtual document exists
我正在開發一個 android 應用程序,用戶可以在其中注冊。 為了保存用戶數據,我使用了 Firebase Firestore。 因此,當用戶注冊時,會創建一個以FirebaseUser.userId
作為 id 的文檔。
val exampleObject = ExampleObject(exampleData1, exampleData2)
val firestoreUser = FirebaseAuth.getInstance().currentUser
firebaseFirestore
.collection("users")
.document(firestoreUser.uid)
.collection("exampleCollection")
.document("exampleDocument")
.set(exampleObject)
為每個用戶創建的文檔僅包含 collections,因此,Firestore 僅創建一個“虛擬文檔”。 那么,如何檢查該文檔是否存在?
firebaseFirestore
.collection("users")
.document(firestoreUser.uid)
.get()
.addOnSuccessListener { doc->
if(doc.exists()) {
} else {
}
}
這不起作用,因為它只是一個“虛擬文檔”,並不真正存在
Firestore 只會創建一個“虛擬文檔”。
它不會創建任何文檔。 該文檔不存在,因為您根本沒有創建它。 您所做的只是在一個從未存在的文檔下創建一個子集合。 換句話說,您只是為集合中的文檔保留了一個 id,然后您在其下創建了一個子集合。
要記住的一件事是,在 Cloud Firestore 中,文檔和子集合不像文件系統文件和目錄那樣工作。 如果您在文檔下創建子集合,它不會隱式創建任何父文檔。 子集合不以任何方式綁定到父文檔。
因此請注意,該位置沒有物理文檔,但該位置下還有其他數據,即exampleCollection
子集合。 請記住,只有當您至少編寫一個可以在其中保存值的屬性時,您正在談論的“虛擬文檔”才會成為真正的文檔。
因此,在您的情況下,以下語句:
if(doc.exists())
將始終評估為false
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.