第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

查找子數(shù)據(jù)中的子項是否存在 Android Firebase

查找子數(shù)據(jù)中的子項是否存在 Android Firebase

慕哥6287543 2021-12-30 17:37:15
這可能是重復的問題,但我嘗試了很多,但沒有得到結果,這是我的 firebase 結構更新我需要找到子費用名稱(例如它可以是油)是否存在于 2018 年11 月的整個節(jié)點下(紅色框內)。如果存在,我需要顯示吐司以下是我嘗試過的代碼://Here monthyr is the November_2018      expensesaddref = databaseReference.child(username).child("Expense_Month").child(monthyr);     //Variable expensesname is the variable that i want to  checked for existent           expensesaddref.orderByChild("expensesName").equalTo(expensesname).addListenerForSingleValueEvent(new ValueEventListener() {               @Override               public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                   for (DataSnapshot ds : dataSnapshot.getChildren()) {                       Log.d("List Exp","1 loop");                       for(DataSnapshot data : ds.getChildren()){                           Log.d("List Exp","2 loop");                               if(data.child("expensesName").exists()){                                   Log.d("List Exp","if loop");                                   Toast.makeText(getContext(), "exist", Toast.LENGTH_SHORT).show();                               }else                               {                                   Log.d("List Exp","else loop");                                   Toast.makeText(getContext(), "not exist", Toast.LENGTH_SHORT).show();                               }                           }                       }                   }               @Override               public void onCancelled(@NonNull DatabaseError databaseError) {               }           });我不知道我哪里錯了,它Not Exist Toast總是顯示,但 firebase 有那個價值
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

你可以使用這樣的代碼orderByChild()和equalTo()所有領域有比較expensesName為特定值說“油”,并知道如果這樣的字段存在與否。


DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Expenses Details").child(uniqueID).child("Expense_Month").child("November_2018");


ref.orderByChild("expensesName").equalTo("oil").addListenerForSingleValueEvent(new ValueEventListener() {

                        @Override

                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


                            if(dataSnapshot.exists()){

                              // do what you want here


                            }


                        }


                        @Override

                        public void onCancelled(@NonNull DatabaseError databaseError) { // ToDo: do something about exceptions too


                        }

                  )};

這uniqueID是我可以在您的數(shù)據(jù)庫圖像中在相關節(jié)點之間看到的字符串。


編輯:


盯著結構看了一分鐘,我想我已經(jīng)找到了問題所在。這是行不通的,因為你有節(jié)點內November_2018,即3,4等等,這是上面的UNIQUEID節(jié)點之上expensesName。


這種層次結構是導致問題的原因,我建議您將計數(shù)保存在 uniqeID 內而不是在它之上,這將orderByChild()起作用。


與 NoSQL 數(shù)據(jù)庫一樣:如果您無法使用當前的數(shù)據(jù)結構執(zhí)行您想要的用例,您通??梢愿?擴展您的數(shù)據(jù)結構以允許用例。


通常這是通過非常直接地將您想要在屏幕上顯示的內容映射到數(shù)據(jù)庫中的結構來完成的。


帶有日期的數(shù)據(jù)庫可能如下所示:


-UniqueId

|

 -- expensesName

 -- date

 -- total


查看完整回答
反對 回復 2021-12-30
?
紅糖糍粑

TA貢獻1815條經(jīng)驗 獲得超6個贊

為了解決這個問題,我建議你稍微改變你的數(shù)據(jù)庫結構。由于無法在查詢中使用動態(tài)值或通配符,因此您的數(shù)據(jù)庫架構應如下所示:


Expense_monts

   |

   --- November_2018

          |

          --- -LQ ... Gb

          |     |

          |     --- expensesName: "gross"

          |     |

          |     --- total: 66

          |     |

          |     --- day: "Monday"

          |

          --- -LQ ... LO

                |

                --- expensesName: "oil"

                |

                --- total: 33

                |

                --- day: "Tuesday"

如您所見,沒有必要使用額外的子項(3,4等等)。在這種情況下,查詢如下所示:


expensesaddref = databaseReference.child(username).child("Expense_Month").child(monthyr);

expensesaddref.orderByChild("expensesName").equalTo("oil")

    .addListenerForSingleValueEvent(/* ... */);

將工作得很好。


查看完整回答
反對 回復 2021-12-30
?
瀟湘沐

TA貢獻1816條經(jīng)驗 獲得超6個贊

感謝您對Alex、Aadil、Pradyuman 的所有回答。正如大家所建議的那樣,我已經(jīng)按照Aadil提到的那樣重構了我的查詢, 并且我可以根據(jù)需要查詢我的所有數(shù)據(jù)。這是我的結構


Expense_Month

   |

   --- November_2018

          |

          --- uniqueKey

          |     |

          |     --- expensesName: "gross"

          |     |

          |     --- total: 66

          |     |

          |     --- date_exp: "3_gross"

          |     |

          |     --- current_date: 3


          |

          --- uniquekey

                |

                --- expensesName: "oil"

                |

                --- total: 33

                |

                --- date_exp: "4_oil"

                |

                --- curent_date: 4


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號