我正在尝试从不变的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());
        }
        });


仅当发生更改时,它才能读取值。

最佳答案

当您将ValueEventListeneraddValueEventListener附加在一起时,其onDataChange随即随该位置的数据一起被调用。然后,此后将要求对数据进行任何更改。

the docs


附加了侦听器后,会触发此[onDataChange]方法,并且每次更改数据(包括子级)时都会触发此方法。

10-07 13:12
查看更多