如何在 Firestore 中設定子收集?
這是我的實時資料庫格式

我試著用這種方式 db.collection("Report").document("Post").set(hashMap).addOnSuccessListener
但它無法設定我的帖子 ID (-MkllN0v3il1s85g4BT4)
-MkllN0v3il1s85g4BT4 是我的帖子 ID。
然后我用 DocumentReference d1 = db.document("Report/Post");
但是如何設定 document(postid) ?
實時DB hashMap方式
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Report").child("Post");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("publisher",FirebaseAuth.getInstance().getCurrentUser().getUid());
hashMap.put("time", ServerValue.TIMESTAMP);
hashMap.put("info", edt_comment.getText().toString());
reference.child(postModel.getPostid()).setValue(hashMap);
uj5u.com熱心網友回復:
如果您想完全自由地確定要存盤的樹,則應該堅持使用實時資料庫。
另一方面,如果您想切換到 Firestore,則必須找到一種方法將您的資料模型(不僅是 JSON,還有您的應用程式模型)映射到 Firestore 的檔案/集合模型。
我發現對集合名稱使用復數形式很有幫助,這樣即使僅從名稱就可以清楚地表明這些是集合。檔案名稱通常由資料庫本身或某些其他系統(如用戶的 UID 或日期/時間的時間戳)生成。
考慮到這些知識,我希望您的結構是:
Reports (collection)
$reportID (docs)
Posts (collection)
$postID (docs)
即使應用程式中只有一個報告,我也會使用這種方法。在這種情況下,我將為該報告使用固定名稱/檔案 ID:
Reports (collection)
Default (doc)
Posts (collection)
$postID (docs)
如果您不希望擴展報告的數量,也不Default希望在報告的檔案中存盤資訊,您可以考慮完全洗掉頂級集合,并將其建模為:
ReportPosts (collection)
$postID (docs)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/351939.html
標籤:安卓 火力基地 谷歌云firestore
