Javascript VueJS+VueFire-通过身份验证将数据添加到Firebase实时数据库
我正在将VueJS与VueFire一起使用,我需要通过用户授权将数据保存到Firebase实时数据库 错误消息: util.js?54b5:189火基警告:设置为/notes/-L5J8Hk8wKHOxH TQEhb 失败:权限被拒绝导出。warn@util.js?54b5:189 回购js?6ebd:510 承诺中未捕获错误:权限\拒绝:权限拒绝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:
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 = ''
},