java - ui版本 - firebase讀取資料android




如何在Firebase中獲取特定的pushID? (2)

有兩種方法可以實現這一目標。 因此,如果您想要訪問特定評論,您必須知道某些特定標識pcommentll的內容。 第一種解決方案是在使用 push() 方法將新註釋推送到數據庫的確切時刻將隨機ID存儲在變量中。 要獲取該ID,您可以使用以下代碼行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
String commentId = rootRef
    .child(UserId)
    .child(PhotoId)
    .child("comments")
    .push()
    .getKey();

如果以後需要使用它,也可以將該id保存在註釋對像中。 所以這就是它在代碼中的樣子:

Map<String, Object> map = new HashMap<>();
map.put("noOfLikes", 0);
map.put("commentId", commentId);
rootRef
    .child(UserId)
    .child(PhotoId)
    .child("comments")
    .child(commentId)
    .updateChildren(map);

獲得此 key ,您可以在參考中使用它來更新喜歡的數量。 這種類型的操作通常使用 Firebase事務 來完成,為此,我建議在這篇 post 中看到我的答案,其中我已經解釋瞭如何更新得分屬性,但在喜歡的情況下同樣適用原則。

第二種方法是創建一個全新的頂級集合,如下所示:

Firebase-rot
   |
   --- comments
         |
         --- commentId
                |
                --- noOfLikes: 1

使用此解決方案,您可以更輕鬆地查詢數據庫,以獲得您只需要這個簡單參考的喜歡的數量:

DatabaseReference noOfLikesRef = rootRef
    .child("comments")
    .child(commentId)
    .child("noOfLikes");
noOfLikesRef.addListenerForSingleValueEvent(/* ... */);

我正在嘗試像Instagram一樣使用Firebase作為後端,而用戶在任何照片中添加評論,新的ID由Firebase生成現在我想添加一個孩子(喜歡)當用戶點擊這個隨機生成的類似按鈕時評論ID,但問題是如何獲得特定的評論ID?


試試這個:

  1. 在存儲之前獲取commentID,如下所示:

    String CommentId = myRef.push()。getKey();

  2. 將ID與評論數據一起保存:

    myRef.child(CommentId).SET(yourValuesHashMap);

  3. 現在,當您檢索註​​釋時,您將擁有每個註釋的ID,您可以使用插入的註釋。





firebase-realtime-database