在移動應用程式中,我希望用戶能夠為一組事件中的每一天創建自己的標簽,每個事件都有可變的天數(從 1 天到 15 天)。大多數事件將只有 1 天。
例如:
Event1(2天活動)
- 第一天 {tag1:true, tag2: true}
- day2 {tag2: true, tag3: true}
Event2(1天活動)
- 第一天 {tag3:true, tag4: true, tag5: true}
然后我想找到其中一天有一組特定標簽的所有事件。例如,其中一天具有組合(tag1 和 tag2)的所有事件,即 event1 的 day1
將標簽以 true 作為值存盤在地圖中應該可以復合 where 查詢,每個標簽一個,并檢查它們的值是否為真。因此,我可以搜索并找到每天的 (AND) 標簽組合。
但是......當天數可能變化時,每天迭代搜索的最簡單方法是什么?
- 我可以編程來讀取每個事件的天數,然后檢查該事件的每一天是否存在標簽組合......感覺需要做很多作業。
- 似乎 TAGS 子集合和 CollectionGroup 不起作用,因為它需要提前知道天數 - 除非我預先設定所有事件持續最大天數......感覺也不是最佳的
關于如何最好地構建和查詢我的事件、日期和標簽的任何想法?
uj5u.com熱心網友回復:
你總是可以在你的事件檔案中添加一個可搜索的欄位來滿足你的閱讀模式。
const event = {
...rest,
flatTags: ["openingDay-race", "finals-race", "afterParty-awards-interviews"],
};
通過這種方式,您可以簡單地向該欄位添加索引并在整個集合中搜索正確的標簽組合(或哈希)。
我會通過偵聽檔案中標簽元資料的真實來源節點來使其保持最新狀態。然后 doc CRUD 邏輯根本不需要改變。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/335940.html
標籤:火力基地 反应原生 谷歌云firestore 谷歌云功能
