Ond*_*hák 7 firebase firebase-security google-cloud-firestore
如何检查客户端上的用户是否仅创建了文档firebase.firestore.FieldValue.serverTimestamp()?
我有以下内容:
allow create: if request.resource.data.timestamp == ??
Run Code Online (Sandbox Code Playgroud)
我该怎么做而不是??.我曾尝试serverTimestamp() firebase.firestore.FieldValue.serverTimestamp(),now或now()但它不能正常工作.
可以在Firebase中执行此操作:
".validate": "newData.child('timestamp').val() === now"
Run Code Online (Sandbox Code Playgroud)
我正在寻找相同的解决方案.有任何想法吗?谢谢
Mik*_*ald 15
您可以使用request.time属性(docs)访问安全规则中的当前请求时间戳,该属性是与实时数据库等效的Firestore now.因此,您需要以下内容:
allow create: if request.resource.data.timestamp == request.time;
Run Code Online (Sandbox Code Playgroud)
为此serverTimestamp()应该评估为真.
你应该总是验证在安全规则客户端输入,即使你使用serverTimestamp().安全规则不会自动知道服务器输入的值而不是客户端,因此如果没有此检查,恶意客户端可能会创建一个不同的时间创建.
| 归档时间: |
|
| 查看次数: |
1241 次 |
| 最近记录: |