簡體   English   中英

Firestore android 連續 whereArrayContains 查詢不起作用

[英]Firestore android consecutive whereArrayContains queries not working

我有一些包含兩個 arrays 的文檔,一個用於搜索功能(關鍵字),另一個用於按服務過濾,使用單個 whereArrayContains 或 whereArrayContainsAny 完美運行。 如果我同時使用它們來獲取既具有搜索功能關鍵字又具有至少一項選定服務的文檔,它會卡在加載 state 中,並且永遠不會返回任何內容。 對於上下文,我將 jetpack compose 與 compose pager 一起用於顯示文檔的 lazyColumn。

這個作品:

FirebaseFirestore.getInstance().collection("Clubs")
                .whereArrayContainsAny("services", sportsFilters)
                .get()
                .await()

這也有效:

FirebaseFirestore.getInstance().collection("Clubs")
                .whereArrayContains("keywords", searchString.lowercase().trim())
                .get()
                .await()

這不起作用:

FirebaseFirestore.getInstance().collection("Clubs")
                .whereArrayContains("keywords", searchString.lowercase().trim())
                .whereArrayContainsAny("services", sportsFilters)
                .get()
                .await()

來自關於查詢限制的 Firestore 文檔:

每個查詢最多可以使用一個array-contains子句。 您不能將array-containsarray-contains-any結合使用。

因此,您嘗試執行的查詢在 Firestore API 上是不可能的。解決方法是對數據庫執行一個過濾條件,然后在您的應用程序代碼中執行另一個過濾條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM