Firebase实时数据库侦听器不起作用

时间:2019-05-29 20:59:20

标签: android firebase firebase-realtime-database

我正在尝试将一些数据存储在Firebase中,但是我添加的侦听器无法正常工作。奇怪的是,有时它可以工作,而有时却不能,并且代码保持不变。这是Firebase问题,我的设备问题还是我的代码问题?

我尝试使用onDataChange()和onCancelled()方法内的断点调试应用程序,但未达到断点,但是方法addFestivalsListener()返回了侦听器对象,并且它不是null。 另外,将创建对Firebase的引用,并正确添加侦听器。

数据库结构类似于this

private ValueEventListener addedFestivalsListener(){
    ValueEventListener addedListener = new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            allFestivals.clear();
            for (DataSnapshot festSnapshot : dataSnapshot.getChildren()){
                Festival f = festSnapshot.getValue(Festival.class);
                allFestivals.add(f);
            }
            adapter.notifyDataSetChanged();
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d(TAG, databaseError.getMessage());
        }
    };
    return addedListener;
}
dRef = FirebaseDatabase.getInstance().getReference().child("festivals");
dRef.addValueEventListener(addedFestivalsListener());

我在Logcat中获得的唯一信息是这样的消息:addedFestivalsListener()的验证花费了106.237ms

我添加了一个侦听器以验证与Firebase的连接,并且输出如下所示:


2019-05-30 17:12:44.023 30517-30517/? D/FestivalsFragment: onDataChange: not connected
2019-05-30 17:22:02.492 30517-30517/? D/FestivalsFragment: onDataChange: connected
2019-05-30 17:22:02.492 30517-30517/? D/FestivalsFragment: onDataChange: connected
2019-05-30 17:22:05.922 30517-30517/? D/FestivalsFragment: onDataChange: not connected
2019-05-30 17:22:05.923 30517-30517/? D/FestivalsFragment: onDataChange: not connected
2019-05-30 17:48:42.819 30517-30517/? D/FestivalsFragment: onDataChange: connected
2019-05-30 17:48:42.819 30517-30517/? D/FestivalsFragment: onDataChange: connected

0 个答案:

没有答案