我目前正在嘗試firestore通過檔案屬性在我的資料庫中獲取資料,
我發現我可以這樣做
const qsnap = await firebase.firestore()
.collection('blog-posts')
.where(firebase.firestore.FieldPath.documentId(), "==", id)
.where("published", "==" true)
.get()
我試圖讓它更智能或更動態
這很好用,但我發現了一個問題,我想where動態地將條件分配給查詢,以便通過映射傳遞我想要查找的屬性,就像這樣
params.forEach((k, v) => {
_mainCollection.where(k, isEqualTo: v)
});
var result = await _mainCollection.get();
我認為這會起作用,因為我為地圖中的每個值分配了幾個位置,但它似乎不起作用我不知道為什么
然后試試這個
Query? query;
params.forEach((k, v) => {
query = _mainCollection.where(k, isEqualTo: v)
});
var result = await query!.get();
它有效,但您可以想象它只是將地圖的最后一個值分配給查詢,因為我總是覆寫它
所以我正在尋找一種在查詢中包含幾個 where 條件的方法,基本上是存盤在 foreach 映射中的所有條件,或者如果有任何方法可以將它們動態添加到集合查詢中,如果有人知道,那就太好了如何為我做這個把戲它會有很大幫助。
uj5u.com熱心網友回復:
你快到了。由于Query是 的父類Collection,您可以執行以下操作:
Query query = _mainCollection;
params.forEach((k, v) => {
query = query.where(k, isEqualTo: v)
});
var result = await query!.get();
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449859.html
上一篇:回傳到顫振中查看
