java - 通知节点未删除通知及其在 ImageView 上的数据应何时单击
问题描述
我的 Activity 中有两种方法,一种是在评论中添加点赞(单击ImageView
)和向 Firebase 发送通知,并且发布它的用户也会收到通知,然后是另一种删除它(ImageView
再次单击)。问题是通知和评论都显示出来,并保存到数据库中,但是当我再次单击删除“喜欢”时,评论会从数据库中删除,但通知没有。
有人可以帮我解决这种方法的逻辑。我做错了,因为通知没有被删除,只有评论。
private void likeComment(String commentId, String postId, String userId) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Comments Liked").child(commentId).child(mFirebaseUser.getUid());
mNotificationId = reference.push().getKey();
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("notificationId", mNotificationId);
hashMap.put("commentid", commentId);
hashMap.put("userid", mFirebaseUser.getUid());
reference.setValue(hashMap);
HashMap<String, Object> hashMap1 = new HashMap<>();
hashMap1.put("userid", mFirebaseUser.getUid());
hashMap1.put("comment", "liked your comment");
hashMap1.put("postid", postId);
hashMap1.put("ispost", true);
hashMap1.put("notificationId", mNotificationId);
FirebaseDatabase.getInstance().getReference("Notifications").child(userId).child(mNotificationId).setValue(hashMap1);
}
private void removeLike(String userId, String commentId) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Comments Liked").child(commentId).child(mFirebaseUser.getUid());
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
String notificationId = dataSnapshot.child("notificationId").getValue(String.class);
if (notificationId != null) {
FirebaseDatabase.getInstance().getReference("Notifications").child(userId).child(notificationId).removeValue();
reference.removeValue();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
解决方案
推荐阅读
- python - Python 和 Windows 10:“telnet”未被识别为内部或外部命令、可运行程序或批处理文件
- marklogic - 使用 nifi 在 MarkLogic 中的数据库之间移动内容
- node.js - firebase Nodejs异步云功能未完成执行
- php - 使用 php 检查 url 是否包含特定的非拉丁词(例如希腊语)
- python - 无法从 pandas_ml 导入 ConfusionMatrix
- c++ - 如何按顺序或在指定的地址分配内存?
- php - Docker & Laravel:配置:错误:未满足包要求(oniguruma)
- eclipse - PydevPlugin - 在新版本中设置 PythonInterpreterManager
- sql-server - 存储的数据显然在没有警告的情况下消失了
- c - 链接器是否查找头文件