java - Firebase 全局保存 query.addValueEventListener 数据

标签 java android firebase firebase-realtime-database

我想将从查询中检索到的数据保存到全局类变量,例如 .RoomType,但是当它存在于 query.addValueEventListener 的范围时,数据永远不会保存。当我在其范围内执行 Log.w("Value", "value is "+ RoomType ); 时,它会输出检索到的数据。我如何在全局范围内保存这些数据?

这是我的代码:

public class DatabaseManager {


public static String RoomName, RoomType, BuildingName;
static int RoomLevel;
public  Double RoomLat, RoomLang ;




//connecting to Firebase database by creating database reference
private static FirebaseDatabase mDatabase;

public static FirebaseDatabase getDatabase() {
    if (mDatabase == null) {
        //Retrieving an instance of the database
        mDatabase = FirebaseDatabase.getInstance();

        //Enabling database for offline use for events where there is no internet connection
        mDatabase.setPersistenceEnabled(true);

    }
    return mDatabase;
}




public  void getresults(DatabaseReference myref, String data){
    Query query=  myref.child("rooms").orderByChild("RoomName").equalTo(data);
    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {




                for (DataSnapshot Node : dataSnapshot.getChildren()) {



                    RoomType = Node.child("RoomType").getValue().toString();
                    BuildingName = Node.child("BuildingName").getValue().toString();
                    RoomLevel = Node.child("RoomLevel").getValue(Integer.class);
                    RoomLat = Node.child("RoomLat").getValue(Double.class);
                    RoomLang = Node.child("RoomLang").getValue(Double.class);


                }

            }

            Log.w("Value", " value is "+ RoomType );
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }


    });

    Log.w("Value at end ", " value is "+ RoomType );


}


}

最佳答案

尝试像这样初始化 RoomType 变量 RoomType = "";

关于java - Firebase 全局保存 query.addValueEventListener 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48047170/

相关文章:

java - 在不破坏构建的情况下将泛型引入 Java 代码

android - 通过设置 UI 在 Android Lollipop 或更高版本上设置 WiFi 优先级

swift - 无法使用 Firebase 观察方法通过完成处理程序或任何其他方式传递已完成的数组

ServerSocket.accept() 中的 java.lang.nullpointerException

android - AirWatch 浏览器 URL 方案

android - Firebase 无法获取最后一个插入值

android - 设置对 FirebaseRecyclerAdapter android 的不同引用

java - 如何从java中的固定数组中删除最后一项

java - Maven编译成功,但安装失败

java - 分布式任务队列中的并发(生产者/消费者)