[英]Adding data from firebase causes an infinite loop
請幫忙,當我想從 Firebase 數據庫添加用戶點數據時遇到問題
我想將前一個用戶的點添加到新獲得的點上。 這是我使用的代碼
final DatabaseReference userDataRef = FirebaseDatabase.getInstance().getReference().child("Users").child(userRefEmail);
userDataRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String userCurrentPoint = dataSnapshot.child("point").getValue().toString();
if (userCurrentPoint != null) {
int finalPoint = Integer.parseInt(userCurrentPoint) + poin;
userDataRef.child("point").setValue(String.valueOf(finalPoint));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
但是在我使用的時候,firebase數據庫中出現了無限連續加點,怎么處理呢?
使用SingleValueEvent
而不是ValueEventListener
,使用SingleValueEvent
它只會被調用一次:
userDataRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String userCurrentPoint = dataSnapshot.child("point").getValue().toString();
if (userCurrentPoint != null) {
int finalPoint = Integer.parseInt(userCurrentPoint) + poin;
userDataRef.child("point").setValue(String.valueOf(finalPoint));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.