似乎可以撰寫檢查值是否屬于durationtype的 Firestore 規則,如下所示:
allow write: if request.resource.data.bla is duration;
然而,如何產生這樣的值是完全神秘的,至少從 Web API 中是這樣。
Firestore 規則參考有一個關于duration命名空間和Duration介面的部分。
甚至在這個Firebase 官方視頻中也提到了它(鏈接指向討論持續時間型別的確切時間)。
我在 Rules Playground 中成功測驗了一個檔案,該檔案將值設定為<number>s模式,例如100sor5s和 even 0.5s,所以我假設這將映射到幾秒鐘。我嘗試了其他一些單位,例如1w(1 周)或3d(3 天)或5m(5 分鐘),但沒有成功。
此外,這些都不能在 Firestore 模擬器中本地作業。
我知道持續時間型別對于驗證例如時間戳輸入很有用,但我不希望它本身被接受(所以沒有理由is duration編譯)。
我錯過了什么嗎?這種型別是要隱藏、未使用還是...?
uj5u.com熱心網友回復:
從檔案中,
is運算子的有效資料型別為bool,bytes,float,int,list,latlng,number,path,map,string, 和timestamp. 該is運算子還支持constraint、duration、set和map_diff資料型別,但由于這些是由安全規則語言本身生成的,而不是由客戶端生成的,因此您在大多數實際應用程式中很少使用它們。
因此,is duration大多數情況下可用于驗證安全規則中任何操作的結果(主要是與時間戳相關的計算)是否屬于持續時間型別。
您分享的視頻解釋了哪些運算式回傳持續時間:
| 表達 | 結果 |
|---|---|
| 時間戳±持續時間 | 時間戳 |
| 時間戳 - 時間戳 | 期間 |
| 持續時間±持續時間 | 期間 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/439754.html
標籤:火力基地 谷歌云火库 firebase-安全
上一篇:FlatList條件渲染if{user===owner||猜測}
下一篇:ValueError:所有輸入陣列必須具有相同數量的dims,但索引0處的arr有1個維度,索引11處的arr有2個維度
