在firebase中,每次执行if条件内的代码时,都会调用onDataChange
两次。
这是我的代码。
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
if(snapshot.child("visité").getValue().toString().equals(visité.getText().toString())
&& snapshot.child("date").getValue().toString().equals(date.getText().toString())
&& snapshot.child("zone").getValue().toString().equals(zone.getText().toString())
&& snapshot.child("etat").getValue().toString().equals("Créé")){
mDB.child(visiteur).child(snapshot.getKey()).removeValue();
loadData();
} else {
Toast.makeText(context,getString(R.string.suppr_error), Toast.LENGTH_SHORT).show();
}
}
}
在阅读类似问题之后,我认为它是由onDataChange内部的循环引起的。如何从onDataChange中获取循环?
答案 0 :(得分:1)
每次更改(添加,删除,更新,移动......)时都会调用'NoneType' object is not iterable
,您正在使用onDataChange
,因此它将调用该方法,这就是为什么它被调用两次。