firebase - 如何在 Firestore 安全规则中使用时间戳
问题描述
想象一下timestamp
存储在文档中的类型值。
allow update: if resource.data.customTimestamp.toMillis() == request.time.toMillis()
上面的代码不起作用并抛出以下错误:
找不到函数错误:名称:[toMillis]。
如果我像这样转过身来:
allow update: if request.time.toMillis() == resource.data.customTimestamp.toMillis()
数据访问被拒绝:
模拟数据访问被拒绝
这让我很困惑。
问题
如何将 Firestore 解析timestamp
为安全规则Timestamp
?
测试项目
解决方案
这里有两个不相关的问题,但本质上是 Firstore 规则模拟器中的错误。
首先,request.time
目前没有模拟。不幸的是,试图评估这一点的规则会立即被拒绝,而不是给你一条消息说它不受支持。
其次,应该在文档中的 Timestamp 类型字段上可用的 Timestamp 对象方法被破坏。时间戳字段当前作为没有方法的“空对象”发送到模拟器,因此您无法在模拟器中使用它们的值。
对于这两种情况,已发布的规则应该可以正常工作。
推荐阅读
- json - 你如何使用 rxjs 与这个 json 进行交互?
- reactjs - 如何使用 React Native 创建本地化?
- c# - 如何在十进制列表中找到最小值和最大值?
- c - 在c中的二维数组中释放二维数组的问题
- list - Drools:如何获取具有唯一 ID 的项目的列表
- css - 浏览器是否应用了 0 度的 css 变换旋转?
- laravel - 在选择中设置初始位置不起作用
- react-native - 在 React Native 中读取 Sms 以在文本字段中自动填充 OTP 的可能方法是什么
- excel - 在完成计算并满足条件后,如何平均一组数字?
- javascript - Chart JS 在使用 ajax 请求时总是无法加载标签或图例