【问题标题】:I want to update single value in firebase database我想更新 firebase 数据库中的单个值
【发布时间】:2018-02-11 02:54:37
【问题描述】:

我使用了 RecyclerView 和 Adapter 以及适配器的 inflte item_list,每一行都有一个点赞按钮和存储点赞值的文本,我想在用户点击点赞按钮时更新值。

2

【问题讨论】:

  • 听起来不错。可以添加你的代码吗?

标签: android firebase firebase-realtime-database android-recyclerview


【解决方案1】:

如果您发布适配器的代码会更好。 但是让我们假设您正在显示除赞按钮之外的每个引用的当前赞。

因此,从适配器的项目中获取 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?有什么区别?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 1970-01-01
  • 2022-01-19
  • 2017-06-11
  • 2019-07-03
  • 2022-11-12
相关资源
最近更新 更多