Javascript Angular Firestore-搜索和更新单个文档
我对网络(以及一切异步)都是新手。我正在尝试在Angular+Firebase应用程序中完成两个步骤:Javascript Angular Firestore-搜索和更新单个文档,javascript,google-cloud-firestore,angularfire2,Javascript,Google Cloud Firestore,Angularfire2,我对网络(以及一切异步)都是新手。我正在尝试在Angular+Firebase应用程序中完成两个步骤: 查询Firestore集合以查找与筛选器匹配的文档的ID(名称=='theName') 然后使用该ID更新文档 我来自嵌入式世界,在那里我可以做类似的事情(应用程序的上下文-我试图跟踪战斗机器人比赛的结果) //用结果更新获胜机器人的文档 //找到我们正在寻找的机器人的ID(例如winningRobotName=“Some Name”) this.firestore.collection('r
//用结果更新获胜机器人的文档
//找到我们正在寻找的机器人的ID(例如winningRobotName=“Some Name”)
this.firestore.collection('robots',ref=>ref.where('name','==',winningRobotName)).snapshotChanges()
.订阅(数据=>{
this.bots=data.map(e=>{
返回{
id:e.payload.doc.id,
名称:e.payload.doc.data()['name'],
//其他领域
}作为机器人;
})
});
让robot=this.bots[0] 我认为AngularFire在这方面对您没有帮助,而是直接在常规JavaScript SDK上执行此操作:
ref.where('name', '==', winningRobotName))
.get()
.then((snapshots) => {
snapshots.forEach((doc) =>
doc.ref.update({
id: doc.id,
name: doc.data().name
})
})
})
我不太清楚name:doc.data().name
应该做什么(因为这是一个身份操作,提供与输入相同的结果),但为了防止这件事影响到您,我尝试了这个方法。我用代码尝试了这个方法:this.firestore.collection('robots',ref=>ref.where('name','==','fight.winner')。获取().then(…
但是获取错误属性'then'在类型'Observable'上不存在。
您仍然在那里使用AngularFire,而我的答案显示了如何直接在JavaScript SDK上执行此操作。删除this.firestore.collection('robots',ref=>
位,因为它不需要,并且在这里没有帮助。
ref.where('name', '==', winningRobotName))
.get()
.then((snapshots) => {
snapshots.forEach((doc) =>
doc.ref.update({
id: doc.id,
name: doc.data().name
})
})
})