【发布时间】:2018-02-11 02:54:37
【问题描述】:
我使用了 RecyclerView 和 Adapter 以及适配器的 inflte item_list,每一行都有一个点赞按钮和存储点赞值的文本,我想在用户点击点赞按钮时更新值。
【问题讨论】:
-
听起来不错。可以添加你的代码吗?
标签: android firebase firebase-realtime-database android-recyclerview
我使用了 RecyclerView 和 Adapter 以及适配器的 inflte item_list,每一行都有一个点赞按钮和存储点赞值的文本,我想在用户点击点赞按钮时更新值。
【问题讨论】:
标签: android firebase firebase-realtime-database android-recyclerview
如果您发布适配器的代码会更好。 但是让我们假设您正在显示除赞按钮之外的每个引用的当前赞。
因此,从适配器的项目中获取 current like 的值并将其递增 1。
那么你需要调用这个:
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("QuoteList").child("Quote");
mDatabase.child("likes").setValue(mItem.totalLikes + 1);
或
您可以从 firebase 获取当前值并像这样更新它:
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("QuoteList").child("Quote").child("likes");
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long totalLikes =(long) dataSnapshot.getValue();
mDatabase.setValue(totalLikes + 1);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
希望对你有所帮助。
【讨论】:
child("likes"),那么为什么要使用addListenerForSingleValueEvent 而不是常规的addValueEventListener?有什么区别?