我正在使用Firebase Firestore开发一个简单的聊天网站。并且很明显地存储消息时间。
现在,问题是从客户端添加了文档。因此,恶意用户可以添加带有伪造时间的文档。有什么办法可以避免这种情况。
我尝试使用云功能,但是发送消息花费的时间太长。
答案 0 :(得分:3)
您要将消息时间属性设置为等于Firebase Server时间戳,提交后将在使用request.time创建消息时将其设置为Firebase服务器时间戳。
安全规则
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();
}