簡體   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