Firebase检查登录用户是否正在写入数据库

时间:2016-10-13 12:43:45

标签: javascript firebase firebase-realtime-database firebase-security

我需要确保对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:权限被拒绝

0 个答案:

没有答案
相关问题