我正在尝试从不变的Firebase实时数据库读取数据。我需要知道应用启动时的变量,并且需要从其他设备访问它。
FirebaseDatabase db = com.google.firebase.database.FirebaseDatabase.getInstance();
DatabaseReference myRef = db.getReference("Counter");
只是通常的东西来获得参考。
How my Database looks like
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
value = dataSnapshot.getValue(int.class);
Log.d("message", "value is: " + value);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w("message", "Failed to read value.", error.toException());
}
});
仅当发生更改时,它才能读取值。
最佳答案
当您将ValueEventListener
与addValueEventListener
附加在一起时,其onDataChange
随即随该位置的数据一起被调用。然后,此后将要求对数据进行任何更改。
从the docs:
附加了侦听器后,会触发此[onDataChange
]方法,并且每次更改数据(包括子级)时都会触发此方法。