gpt4 book ai didi

使用 'now' 的 Firebase 安全时间规则

转载 作者:行者123 更新时间:2023-12-04 03:12:39 25 4
gpt4 key购买 nike

我有一个 Firebase 安全规则试图在字段时间戳尚未通过时允许写入,即应该允许修改,直到时间超过时间戳数据字段中设置的时间。

"tips": {
".read": true,
"$user_id": {
"tips": {
"$game_id": {
".write": "root.child('/games/' + $game_id + '/timestamp/').val() > now"
}
}
}

为了让这个规则起作用,我有 2 个示例时间戳字段:

timestamp: 1593840696 
timestamp: 1393840696

虽然我没有验证“现在”是什么,但我理解它是纪元时间,当前日期/时间大约是 1493840696。在写入 Firebase 时,我希望第一个条目能够成功更新(它的时间戳是在“现在”时间之后)和第二次失败,就像过去一样。

但我看到的是,两条记录都不允许使用此规则更新?如果我将大于“>”的值更改为小于“<”的值,它们都可以工作。奇怪的?看起来 'now' 的值可能大于 1593840696。

".write": "root.child('/games/' + $game_id + '/timestamp/').val() < now"

在这种情况下,“现在”的值(value)是什么?关于如何解决/调试并实现所需的时间戳保护的任何建议?本质上需要保护/允许数据更改,直到时间戳字段结束。

我无法让这条规则触发和保护数据,因此非常感谢任何帮助。

感谢您的任何回复。

最佳答案

Firebase 数据库以自纪元以​​来的毫秒 为单位存储时间戳。获得这样一个值的一种简单方法是使用 JavaScript 的 Date.now() 就像这个片段:

console.log(Date.now());

在我写这篇文章时,值是:

1493869428756

为了比较,您的最高值为:

1593840696

所以您似乎在计算自纪元以来的,而不是毫秒。

关于使用 'now' 的 Firebase 安全时间规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43769081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com