0
我怎样才能让一个空隙从数据库中获得一些价值,但不刷新此数据,每次对数据库的修改,这是无效我:从数据库中获取价值,而不EvenListener
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();
}
});
}
它工作正常当我调用它时,只要数据库发生更改就会触发它。我想是因为无效onDataChange
或ValueEventListener
。
我徘徊,如果有其他方法调用DataSnapshot。
它没有工作,每次dat改变时都会触发。 –
这似乎很奇怪。 'addListenerForSingleValueEvent'会立即触发当前值,然后停止监听。我从来没有见过它的工作方式不同于此,所以很可能它是以你设置的方式工作的。通过你共享的代码,每次调用'getUser'时,'onDataChange'都会被调用。 –
因为我想在按下按钮时调用它,但在数据库发生更改时不能调用它。任何想法我怎么能实现? –