【发布时间】:2017-12-18 13:54:50
【问题描述】:
我如何做一个 void 从数据库中获取一些值,但不要在每次数据库更改时刷新这些数据,这就是我所拥有的 void:
private void getUser() {
userInformationsList.clear();
DatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
FirebaseUser user = mAuth.getCurrentUser();
userID = user.getUid();
nameID = dataSnapshot.child("Users").child(userID).child("name").getValue(String.class);
Lat = dataSnapshot.child("Users").child(userID).child("Coordenates/Rute/Lat").getValue(String.class);
Lng = dataSnapshot.child("Users").child(userID).child("Coordenates/Rute/Lng").getValue(String.class);
DataSnapshot dS = dataSnapshot.child("Coordenate").child(Lat).child(Lng);
toolbar.setTitle(nameID);
for(DataSnapshot Ds : dS.getChildren()) {
Object key = Ds.getKey();
String StringKey = String.valueOf(key);
getname(StringKey);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(SearchActivity.this,"Error 404",Toast.LENGTH_SHORT).show();
}
});
}
当我调用它时它工作正常,但每当数据库更改时它就会触发。我认为是因为 void onDataChange 或 ValueEventListener。
如果有其他方法可以调用 DataSnapshot,我正在徘徊。
【问题讨论】:
标签: android listview firebase firebase-realtime-database