【发布时间】:2022-11-09 22:51:11
【问题描述】:
我的数据库中有一个用户节点,用于存储有关用户的任何信息。然后在我的应用程序中,我必须图像按钮:
mlike = root.findViewById(R.id.btn_like);
mdislike = root.findViewById(R.id.btn_dislike);
mlike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
likeStations();
}
});
mdislike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dislikeStations();
}
});
private void dislikeStations(){
db = FirebaseDatabase.getInstance();
ref = db.getReference().child("Users").child(user);
DatabaseReference likesRef = FirebaseDatabase.getInstance().getReference().child("STATIONS").child(station);
likesRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Boolean dislike_snapshot = dataSnapshot.child("downvote").getValue(Boolean.class);
likeref.child("downvote").setValue(+1)
}
}
然后对于 likeStations() 方法来说几乎是一样的。我想知道的是如何确保他们只能单击一次按钮,或者如果他们在单击不喜欢后单击喜欢它会在将 1 放在喜欢之前从不喜欢中删除 1。
我知道它将使用用户节点,因此我将它添加到问题中。
【问题讨论】:
-
没有最佳实践,只有上下文中的良好实践。
-
抱歉,我的问题不符合标准@EJoshuaS-StandwithUkraine,我以最好的方式询问:)
标签: java android firebase firebase-realtime-database