亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android 如何讓從 firebase 數據庫加載數據與 orderByChild()

Android 如何讓從 firebase 數據庫加載數據與 orderByChild()

呼喚遠方 2022-10-07 16:45:48
我想對 Firebase RealTimeDatabase 中的數據進行排序。我想要做的是,當我首先加載數據時,它將從我放入的子值開始,如“7”,然后它將根據子“NUMBER”值以升序和limitToFirst( 2)數據。但是日志總是顯示dataSnapshot不存在。這是我的代碼加載數據的代碼private void testData(){        final ArrayList<FirebaseDatabaseGetSet> testArrayList;        testArrayList = new ArrayList<>();        databaseReference = firebaseDatabase.getReference();        databaseReference.child("VTEST").orderByChild("NUMBER").startAt("7").limitToFirst(2).addListenerForSingleValueEvent(new ValueEventListener() {            @Override            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                if (dataSnapshot.exists()){                    Log.d("MOSTPOPCURRENTLASTNODE", "LOAINGMOREDATA");                    for (DataSnapshot DS:dataSnapshot.getChildren()){                        FirebaseDatabaseGetSet getSet = DS.getValue(FirebaseDatabaseGetSet.class);                        testArrayList.add(getSet);                    }                    Log.d("MOSTPOPCURRENTLASTNODE", String.valueOf(testArrayList.get(0).getNUMBER()));                    Log.d("MOSTPOPCURRENTLASTNODE", String.valueOf(testArrayList.get(1).getNUMBER()));                }else {                    Log.d("MOSTPOPCURRENTLASTNODE", "NOLOAINGMOREDATA");                }            }            @Override            public void onCancelled(@NonNull DatabaseError databaseError) {            }        });    }這是我的 Firebase 數據結構數據結構"VTEST" : {"A" : {  "NUMBER" : 5},"B" : {  "NUMBER" : 3},"C" : {  "NUMBER" : 7},"D" : {  "NUMBER" : 10},"E" : {  "NUMBER" : 12},"F" : {  "NUMBER" : 8}}我對日志的期望是“7”和“8”,但它總是顯示 dataSnapshot 不存在。有人可以告訴我我在這里做錯了什么嗎,我已經嘗試尋找其他一些類似的問題,但找不到任何解決方案。
查看完整描述

2 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

您正在過濾:

databaseReference.child("VTEST").orderByChild("NUMBER").startAt("7")

你正在存儲:

"NUMBER" : 7

如果你仔細看,你會發現一個是字符串,另一個是整數。在 Firebase 實時數據庫中,不同類型的值永遠不會相等。

要解決此問題,請按數值過濾:

databaseReference.child("VTEST").orderByChild("NUMBER").startAt(7)


查看完整回答
反對 回復 2022-10-07
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

試試這個,我通過縮短孩子以這種方式獲取數據:-


mChatReference = FirebaseDatabase.getInstance().getReference(VTEST)

                .child("user id");

        Query query = mChatReference.orderByChild("NUMBER");

        query.addValueEventListener(new ValueEventListener() {

            @Override

            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

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

                yourList.add(snapshot.child("NUMBER").getValue());

            }

            }


            @Override

            public void onCancelled(@NonNull DatabaseError databaseError) {


            }

        });


查看完整回答
反對 回復 2022-10-07
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號