2 回答

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
Cloud Firestore 查詢是不可變的,這意味著您無(wú)法更改現(xiàn)有查詢的屬性。如果您通過(guò)調(diào)用whereLessThan()方法更改值,它將成為一個(gè)新的查詢。因此,為了解決這個(gè)問(wèn)題,請(qǐng)將所有方法調(diào)用鏈接起來(lái),并將它們存儲(chǔ)在一個(gè)新Query對(duì)象中,如下所示:
Query query = db.collection(viewType.collectionName())
.whereLessThan("endDate", new Date());
.orderBy(viewType.sortProperty()).limit(PAGE_SIZE);
return query;

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
我遇到了同樣的問(wèn)題,我比較和過(guò)濾日期的解決方案是這樣的:
請(qǐng)注意,firebase 存儲(chǔ)Date不是Timestamp創(chuàng)建一個(gè)Date來(lái)比較,而是創(chuàng)建一個(gè)Timestamp。
Timestamp記得從 Firebase導(dǎo)入:
import com.google.firebase.Timestamp
查詢代碼:
val currentDate = Timestamp.now() // Firebase Date as Timestamp
FirebaseFirestore db = FireStoreUtils.getInstance();
Query query= db.collection(viewType.collectionName());
query.whereLessThan("endDate", currentDate.toDate());
return query.orderBy(viewType.sortProperty()).limit(PAGE_SIZE);
我正在使用 firebase 版本:
implementation "com.google.firebase:firebase-firestore-ktx:21.3.1"
我希望它有幫助!
添加回答
舉報(bào)