繁体   English   中英

我的 Firebase 没有从 Firebase 数据库中检索数据

[英]My Firebase is not retrieving data from Firebase Database

我已经看到了许多其他类似的问题,也尝试了他们的方法,但仍然无法正常工作。

我的数据库图片

我在点击侦听器上的 getFirebase function :

 private void getFirebase() {
    firebaseDatabase = FirebaseDatabase.getInstance();
    reference = firebaseDatabase.getReference().child("Questions/m1");
    List<String> list = new ArrayList<>();
    Log.d("QuizFragment", "getfirebase");

    reference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Log.d("QuizFragment", " Snapshots");
            list.add(dataSnapshot.getValue().toString());
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d("QuizFragment", "error  " + databaseError.toString());
        }
    });
    Log.d("QuizFragment","debug");
}

我的 Logcat 显示 getFirebase 然后直接调试消息。 我已经看到很多等待执行 SingleEvent 的答案,但我已经等了很多时间仍然没有显示。 注意:我在模拟器上运行应用程序

addListenerForSingleValueEvent 将从本地磁盘缓存中获取数据。如果您的缓存中没有任何数据,您将不会获得任何数据。我相信这就是您无法进入 onDataChange() 的原因。 所以首先像这样至少获取一次数据

 firebaseDatabase.getReference().child("Questions/m1")
    .get()
    .addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
        @Override
        public void onComplete(@NonNull Task<DataSnapshot> task) {
            if (!task.isSuccessful()) {
                Log.e("firebase", "Error getting data", task.getException());
            }
            else {
                Log.d("firebase", String.valueOf(task.getResult().getValue()));
            }
        }
    });

//then use cache data.  

reference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Log.d("QuizFragment", " Snapshots");
            list.add(dataSnapshot.getValue().toString());
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d("QuizFragment", "error  " + databaseError.toString());
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM