首页 > 解决方案 > 如何在不重新启动 Activity 的情况下更新 Firebase 数据库中的数据

问题描述

我可以从 Firebird 数据库获取数据,但只有在我重新启动活动时才会更新它们如何在不重新启动活动的情况下进行操作。

实现检索数据的代码片段

 ValueEventListener valueEventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

                long coinsAmount = dataSnapshot.child("coinsAmount").getValue(Long.class);
                text.setText(String.valueOf(coinsAmount));

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
        }
    };
    uidRef.addListenerForSingleValueEvent(valueEventListener);

标签: javaandroidfirebasefirebase-realtime-database

解决方案


改变

uidRef.addListenerForSingleValueEvent(valueEventListener);

到:

uidRef.addValueEventListener(valueEventListener);

这样,每次数据库中的值更改时都会调用您的侦听器,而不仅仅是一次。

阅读有关valueEvent 和 singleValueEvent 之间区别的更多信息。


推荐阅读