Vue Firebase:更新子项并向子项写入
我开始使用Firebase和Vue,也开始使用VueFire,我不知道如何更新Firebase的子节点 我打开了一个firebase项目并连接到它,我可以将数据推送到它 我制作了一个vue组件Vue Firebase:更新子项并向子项写入,firebase,firebase-realtime-database,vue.js,vue-component,Firebase,Firebase Realtime Database,Vue.js,Vue Component,我开始使用Firebase和Vue,也开始使用VueFire,我不知道如何更新Firebase的子节点 我打开了一个firebase项目并连接到它,我可以将数据推送到它 我制作了一个vue组件 import db from '../FireBase' let team = db.ref('Teams');//Reference to Teams at firebase let miss = db.ref().child('Teams'); //Attempt to get to t
import db from '../FireBase'
let team = db.ref('Teams');//Reference to Teams at firebase
let miss = db.ref().child('Teams'); //Attempt to get to the children of Teams
export default {
name: "App",
firebase: {
Teams_loc: db.ref('Teams'),
Mission: this.Teams_loc.child('Teams'),
missionKey: db.ref().child('Teams').push("").key,
},
...
我设法从firebase获取团队并向其发送数据:
this.$firebaseRefs.Teams_loc.push({
"test": "tester"
});
但当我尝试更新里面的孩子时
this.miss.push({
"where": "am i"
})
我得到以下错误
Cannot read property 'child' of undefined
当我尝试更新一个孩子时
this.$firebaseRefs.missionKey.update(arr[0]);//arr[0] is an object
我试着看了好几个地方,但似乎没什么效果
谢谢,当您执行以下操作时,您在第二行出现错误
Teams_loc: db.ref('Teams'),
Mission: this.Teams_loc.child('Teams'),
Teams节点的子节点没有值为“Teams”的键
因此,如果您想更新项目,首先必须获取其密钥,例如-LEzOBT mp。。。。。并按照文档中的说明执行以下操作:
updateItem: function (item) {
// create a copy of the item
const copy = {...item}
// remove the .key attribute
delete copy['.key']
//possibly update (or add) some values of (to) the item
this.$firebaseRefs.Teams_loc.child(item['.key']).set(copy)
}
另外,如果我没有误认为执行db.ref将生成一个错误,因为您必须将一个值传递给ref
我建议你多研究一下博士和这个例子:和
更新以下您的评论。有关如何知道随机生成的密钥的详细信息
根据文件:
绑定数组中的每条记录都将包含一个.key属性,该属性
指定存储记录的键。所以如果你在
/Teams/-LEzOBT mp…/,该数据的记录将具有.key
-莱佐特议员
查看文档的这一部分:
因此,您将获得Teams对象的所有键。您现在必须选择要更新的项目
您还可以在firebase对象中声明查询,如:
firebase: {
team21483: this.database
.ref('Teams')
.orderByChild('teamCode')
.equalTo('21483')
}
您将得到一个只有一个团队的数组,其中团队代码为21483
在最新的情况下,最好的方法是使用$BindaArray或可能的$BindaObject实例方法手动绑定到此Firebase查询,使用传递给equalTo的变量。我知道如果我能得到密钥,事情会变得更简单,但问题是我想生成条目并删除它们,所以我不确定如何知道在firebase中随机生成的密钥。好的,我明白了。我想我还有很多东西要学。我会按照你给我的指导开始工作。谢谢!