我需要确保对Firebase数据库的每次推送确实都是登录的人。您可以拦截请求并更改ID并使其看起来像是其他人发布的..我该如何防止这种情况?
这是我尝试过的,但它失败了permission denied
:
编辑:添加.write
删除
EDIT2: 用户登录时添加新问题:
var newQuestion = Firebase.database().ref("/questions");
var user = Firebase.auth().currentUser;
newQuestion.push({
title: this.props.question,
userId: user.uid,
user: user.displayName,
time: moment().format(),
answers: this.props.answers
})
我想要的是一条规则,用于检查登录用户是否仍然是发布问题的用户。换句话说,没有人可以通过“窃取”来发布你的名字。你的uid。
规则:
{
"rules": {
".read": "auth != null",
"questions":{
"$question_id":{
".write": "auth != null && auth.uid == newData.child('userId').isString()"
}
}
}
}
错误:
FIREBASE警告:设置为/ questions / -KTyWyapvfsIzqoe6gmp失败: 没有权限 可能的未处理承诺拒绝(id:0): PERMISSION_DENIED:权限被拒绝 错误:PERMISSION_DENIED:权限被拒绝