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

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

如何按兩個字段對Firebase記錄進行排序(Android)

如何按兩個字段對Firebase記錄進行排序(Android)

桃花長相依 2019-09-27 16:07:44
我正在使用FirebaseRecyclerAdapter并向FirebaseRecyclerOptions構造函數(shù)傳遞一些查詢。每個項目都有許多字段,包括時間戳a和另一個整數(shù)字段b。因此,我希望年齡較大a但較少的物品排b在首位。使用sqlite易于實現(xiàn),而使用nosql則不那么容易。似乎我需要添加一些保留兩個字段的額外字段: String.valueOf(a) + String.valueOf(b)但是如何實現(xiàn)asc / desc屬性?不能加載整個列表并使用Java進行排序。
查看完整描述

2 回答

?
小唯快跑啊

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

不幸的是,F(xiàn)irebase Realtime數(shù)據(jù)庫不支持對多個屬性的查詢,僅支持對單個子屬性的查詢。因此,您猜測需要創(chuàng)建一個額外的字段來保留這兩個字段是正確的。因此,要實現(xiàn)此目的,您需要創(chuàng)建一個新字段,該字段在數(shù)據(jù)庫中應如下所示:


Firebase-root

   |

   --- itemId

          |

          --- a: valueOfA

          |

          --- b: valueOfB

          |

          --- a_b: valueOfA_valueOfB

如您所見,該a_b屬性組合了要過濾的值。


與Firebase Realtime數(shù)據(jù)庫不同,Cloud Firestore允許復合查詢。您應該看看這個。因此,在Cloud Firestore中允許進行以下查詢,而無需創(chuàng)建組合屬性。


itemIdRef.whereEqualTo("a", "valueOfA").whereEqualTo("b", "valueOfB");

當您訂購字符串時,這是正常的訂購方法。速戰(zhàn)速決會是這樣每一秒元素前加兩個零:"1516428687_001","1516428687_002","1516428687_012"?,F(xiàn)在您的訂單就可以了。有關更多說明,請參閱我在這篇文章中的回答。


查看完整回答
反對 回復 2019-09-27
?
元芳怎么了

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

我考慮了-但是在實踐中它是行不通的,因為正如我猜測firebase內(nèi)部使用標準的字符串比較器,所以三個鍵的順序將遵循 "1516428687_1", "1516428687_12", "1516428687_2"。但是我需要"1516428687_1", "1516428687_2", "1516428687_12"。

查看完整回答
反對 回復 2019-09-27
  • 2 回答
  • 0 關注
  • 494 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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