簡體   English   中英

如何獲取 Firestore 文檔 ID?

[英]How to get Firestore document ID?

在 Dart 中,如何在集合的文檔中檢索自動生成的 ID?

我有一個名為“用戶”的集合,其中包含帶有用戶詳細信息的自動 ID 文檔。 你如何找回那個ID?

ID eg: yyHYmbDelykMPDWXHJaV

在此處輸入圖像描述

我正在嘗試獲取此 ID。 當第一次創建文檔時,當第一次創建用戶時, user.uid存儲在它的集合中。

我可以從users數據庫中檢索我不想要的所有數據:

  void getData() {
    databaseReference
     .collection('users')
     .getDocuments()
     .then((QuerySnapshot snapshot) {
    snapshot.documents.forEach((f) => print('${f.data}'));
   });
  } 

我可以獲得當前用戶的 user.uid 的未來參考,但這仍然沒有給我唯一的文檔 ID。

  Future<DocumentReference> getUserDoc() async {
    final FirebaseAuth _auth = FirebaseAuth.instance;
    final Firestore _firestore = Firestore.instance;
    FirebaseUser user = await _auth.currentUser();
    DocumentReference ref = 
      _firestore.collection('users').document(user.uid);
    print(ref);
    return ref;
  }

是否可以針對數據庫用戶搜索 user.uid 並以這種方式檢索 ID?

要獲取自動生成的 id,您可以在嘗試從中獲取文檔的任何集合上調用document方法,返回的值將具有documentID的 getter

final userDocument = usersCollection.document();
final documentID = userDocument.documentID;

您通常在第一次創建文檔時執行此操作。 要在創建后檢索documentID ,我會將其添加到用戶文檔本身:

userDocument.setData({
  documentID: documentID,
  /* ... */
});

我個人沒有使用自動生成的documentID ,而是使用 firebase 用戶的uid屬性,只是因為它與 Firebase auth 相關聯

// user is a FirebaseUser
final userDocument = usersCollection.document(user.uid);
userDocument.setData({
  uid: user.uid,
  // ...displayName, email, etc.
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM