【问题标题】:Firebase increases Long values itself [duplicate]Firebase本身增加Long值[重复]
【发布时间】:2020-08-28 10:59:59
【问题描述】:

我正在构建一个具有 qr 码及其扫描仪的应用程序,我想记录每个 qr 码被扫描的次数,但 Firebase 本身会增加值...我想在 qr 码时将值增加一扫描。

 valueEventListener1 = reference2.addValueEventListener(new ValueEventListener() 
                   {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            reference1.removeEventListener(valueEventListener);
                            if (dataSnapshot.hasChild("count")) {
                                long c = dataSnapshot.child("count").getValue(Long.class);
                                final DatabaseReference reference3 = FirebaseDatabase.getInstance()
                                        .getReference(Utils.ALL_USERS).child(coupon_user_uid)
                                        .child(Utils.USED_COUPONS).child(id);

                                reference3.child("coupon_id").setValue(id);
                                reference3.child("coupon_owner_uid").setValue(coupon_owner_uid);
                                reference3.child("count").setValue(c++)
                                .addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task) {
                                        reference2.removeEventListener(valueEventListener1);
                                    }
                                });

【问题讨论】:

  • 输出有什么问题?你能解释一下吗?
  • 它会不断增加值,直到我关闭应用程序
  • 如果您需要增加房产的价值,您应该使用交易,如副本所述。

标签: java android firebase firebase-realtime-database


【解决方案1】:

可能是因为每次写入完成时侦听器都会再次调用自己。尝试使用ListenerForSingleValueEvent,像这样:

valueEventListener1 = reference2.addListenerForSingleValueEvent(new ValueEventListener() 
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
...............
...............
...............

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2020-07-26
    • 1970-01-01
    相关资源
    最近更新 更多