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

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

嘗試組合 orderByChild() 和 startAt() 時使用 null 獲取值

嘗試組合 orderByChild() 和 startAt() 時使用 null 獲取值

倚天杖 2021-12-22 19:23:46
在嘗試使用 orderByChild() 和 startAt() 對數據進行排序和過濾的代碼時,將 Value 設為 null我在下面附上了數據結構和結果的圖像,我以數據快照的形式獲得了這些圖像。代碼如下Query queryMeal = FirebaseDatabase.getInstance().getReference("meals");            queryMeal.orderByChild("meal_name").startAt("ggh").addListenerForSingleValueEvent(new ValueEventListener() {                @Override                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                    Log.e("Query DataSnapShot",""+dataSnapshot.toString());                }                @Override                public void onCancelled(@NonNull DatabaseError databaseError) {                }            });
查看完整描述

2 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

要解決此問題,請更改以下代碼行:


Query queryMeal = FirebaseDatabase.getInstance().getReference("meals");

ueryMeal.orderByChild("meal_name").startAt("ggh").addListenerForSingleValueEvent();


String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

Query queryMeal = FirebaseDatabase.getInstance().getReference().child("meals").child(uid);

ueryMeal.orderByChild("meal_name").startAt("ggh").endAt("ggh" + "\uf8ff").addListenerForSingleValueEvent();

編輯:


DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

DatabaseReference mealsRef = rootRef.child("meals");

ValueEventListener valueEventListener = new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot dataSnapshot) {

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

            String uid = uidSnapshot.getKey();


            DatabaseReference uidRef = rootRef.child("meals").child(uid).startAt("ggh").endAt("ggh" + "\uf8ff");

            ValueEventListener eventListener = new ValueEventListener() {

                @Override

                public void onDataChange(DataSnapshot dataSnapshot) {

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

                        String mealName = ds.child("meal_name").getValue(String.class);

                        Log.d(TAG, mealName);

                    }

                }


                @Override

                public void onCancelled(@NonNull DatabaseError databaseError) {

                    Log.d(TAG, databaseError.getMessage());

                }

            };

            uidRef.addListenerForSingleValueEvent(eventListener);

        }

    }


    @Override

    public void onCancelled(@NonNull DatabaseError databaseError) {

        Log.d(TAG, databaseError.getMessage());

    }

};

mealsRef.addListenerForSingleValueEvent(valueEventListener);


查看完整回答
反對 回復 2021-12-22
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

在你的 onDataChange 方法中做這樣的事情


if(dataSnapshot != null){

   Log.e("Query DataSnapShot",""+dataSnapshot.getValue().toString());

}


查看完整回答
反對 回復 2021-12-22
  • 2 回答
  • 0 關注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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