Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VueJS+VueFire-通过身份验证将数据添加到Firebase实时数据库_Javascript_Firebase_Firebase Realtime Database_Firebase Authentication_Vuefire - Fatal编程技术网

Javascript VueJS+VueFire-通过身份验证将数据添加到Firebase实时数据库

Javascript VueJS+VueFire-通过身份验证将数据添加到Firebase实时数据库,javascript,firebase,firebase-realtime-database,firebase-authentication,vuefire,Javascript,Firebase,Firebase Realtime Database,Firebase Authentication,Vuefire,我正在将VueJS与VueFire一起使用,我需要通过用户授权将数据保存到Firebase实时数据库 错误消息: util.js?54b5:189火基警告:设置为/notes/-L5J8Hk8wKHOxH TQEhb 失败:权限被拒绝导出。warn@util.js?54b5:189 回购js?6ebd:510 承诺中未捕获错误:权限\拒绝:权限拒绝 at eval (Repo.js?6ebd:510) at Object.exports.exceptionGuard (util.js?54b5:

我正在将VueJS与VueFire一起使用,我需要通过用户授权将数据保存到Firebase实时数据库

错误消息:

util.js?54b5:189火基警告:设置为/notes/-L5J8Hk8wKHOxH TQEhb 失败:权限被拒绝导出。warn@util.js?54b5:189 回购js?6ebd:510

承诺中未捕获错误:权限\拒绝:权限拒绝

at eval (Repo.js?6ebd:510)
at Object.exports.exceptionGuard (util.js?54b5:556)
at Repo.callOnCompleteCallback (Repo.js?6ebd:501)
at eval (Repo.js?6ebd:278)
at eval (PersistentConnection.js?eae0:411)
at PersistentConnection.onDataMessage_ (PersistentConnection.js?eae0:444)
at Connection.onDataMessage_ (Connection.js?33e2:262)
at Connection.onPrimaryMessageReceived_ (Connection.js?33e2:256)
at WebSocketConnection.eval [as onMessage] (Connection.js?33e2:157)
at WebSocketConnection.appendFrame_ (WebSocketConnection.js?4701:197)
我的Firebase授权规则:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}
VueJS代码addnote.vue:

您正在收听/notes并向“`/notes/-L5J8Hk8wKHOxH TQEhb”写入内容,而您的规则仅授予您对/users/$uid`的权限。由于您对后者没有权限,因此写入失败

您至少要更改以下内容:

beforeCreate: function () {
  Firebase.auth().onAuthStateChanged((user) => {
    if (user) {
      this.user = user
      this.$bindAsArray('notes', db.ref(`/users/${user.uid}`))
    }
  })
},
以及:


谢谢,我遇到了两个后续问题。1.如何将子项添加到user.uid?我需要像这样存储所有注释:users/123/notes/abc users/userID/notes/noteID++2。为什么这会删除所有注释,而不是仅删除选定的注释?removeNote:function note{db.ref'users/uid.childthis.user.uid.removeNote['.key']DatabaseReference.remove方法不接受要删除的子对象的参数。因此您确实要删除用户的所有注释。您需要db.ref'users/uid.childthis.user.uid.childnote['.key']‌​.改为删除。我建议在Firebase上开发时保持手边的便利。谢谢,我尝试了您的代码,但出现了以下错误:解析错误:意外字符'‌' ESLINT指向此部分:['.key']‌​. 任何想法。我只是从你最初的评论中复制过来的,没有办法知道这张纸条指的是什么。
beforeCreate: function () {
  Firebase.auth().onAuthStateChanged((user) => {
    if (user) {
      this.user = user
      this.$bindAsArray('notes', db.ref(`/users/${user.uid}`))
    }
  })
},
addNote: function () {
    db.ref('users').child(this.user.uid).push(this.newNote)
    this.newNote.title = ''
    this.newNote.time = ''
    this.newNote.note = ''
},