gpt4 book ai didi

java - 如何在 Firebase 中获取特定的 PushID?

转载 作者:行者123 更新时间:2023-12-02 01:59:39 25 4
gpt4 key购买 nike

我正在尝试使用 Firebase 作为后端制作类似 Instagram 的应用程序,当用户在任何照片中添加评论时,Firebase 会生成新的 id,现在我想在用户单击“喜欢”按钮时添加一个 child (喜欢)这是随机生成的评论 ID,但问题是如何获取该特定评论 ID?

pic

最佳答案

有两种方法可以实现这一目标。因此,如果您想访问特定评论,您必须知道唯一标识该 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 transaction 完成。为此,我建议查看我的答案 post 其中我解释了如何更新分数属性,但同样的原则也适用于点赞的情况。

第二种方法是创建一个全新的顶级集合,如下所示:

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

使用此解决方案,您可以更轻松地查询数据库,因为要获取点赞数,您只需要这个简单的引用:

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

关于java - 如何在 Firebase 中获取特定的 PushID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com