【发布时间】:2019-04-27 15:00:59
【问题描述】:
我正在使用 Firebase Firestore 开发一个简单的聊天网站。并且很明显存储消息时间。
现在的问题是该文档是从客户端添加的。因此,malcius 用户可以添加虚假时间的文档。有什么办法可以避免这种情况。
我尝试过使用云功能,但是发送消息需要很长时间..
【问题讨论】:
标签: firebase web google-cloud-firestore
我正在使用 Firebase Firestore 开发一个简单的聊天网站。并且很明显存储消息时间。
现在的问题是该文档是从客户端添加的。因此,malcius 用户可以添加虚假时间的文档。有什么办法可以避免这种情况。
我尝试过使用云功能,但是发送消息需要很长时间..
【问题讨论】:
标签: firebase web google-cloud-firestore
您想将消息时间属性设置为等于 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();
}
【讨论】: