Firebase Firestore更新时间字段安全问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase Firestore更新时间字段安全问题相关的知识,希望对你有一定的参考价值。

我正在使用Firebase Firestore开发一个简单的聊天网站。显而易见的是存储消息时间。

现在的问题是从客户端添加文档。因此malcius用户可以使用假时间添加文档。有没有办法避免这种情况。

我尝试过使用云功能,但是发送消息的时间太长了。

答案

您希望将消息时间属性设置为等于Firebase服务器时间戳,提交时将使用request.time设置消息,您可以立即验证它。

安全规则

allow create: if request.resource.data.messageTime == request.time && 
              // other rules for the message body

客户端JS代码

const message = {
    text: 'Hello',
    messageTime: firebase.firestore.FieldValue.serverTimestamp();
}

以上是关于Firebase Firestore更新时间字段安全问题的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从firebase云函数node.js更新firestore中的map类型字段?

更新 Firestore 中对象中的字段?

更新 Firestore 数据库中文档的字段

更新firestore文档中嵌套对象中的字段?

除非我先刷新,否则 React 应用程序中的 Firestore 文档字段更新会给出 TypeError

Firebase - 使用 Cloud Functions 定位特定的 Firestore 文档字段