javascript - 如何将当前用户 ID 与 firebase 数据库数据的值相匹配?
问题描述
我将 vue.js 与 firebase 一起用于购物网站。我可以像下面这样获取当前用户 ID。
data () {
return {
cartitems: [],
user: null,
}
},
created(){
//get current user
db.collection('users').where('user_id','==',firebase.auth().currentUser.uid).get()
.then(snapshot=>{
snapshot.forEach(doc => {
this.user =doc.data(),
this.user.id = doc.id
})
console.log('get current user id')
console.log(this.user.id)
console.log(this.user.alias)
})
它正在工作,我可以获得当前的用户 ID 和别名。
在“cartitems”中,我将 user.alias 存储在“用户”中。我只想在“当前用户别名 = cartiems.user”中显示 Cartitem。但下面的代码不起作用。它成功获取了当前用户别名,我在控制台中签入。
db.collection('cartitems').where('user', '==', this.user.alias).get()
.then(snapshot => {
snapshot.forEach(doc => {
this.cartitem = doc.data()
this.cartitem.id = doc.id
this.cartitems.push(cartitem)
})
}).catch(function(error) {
console.log("Error getting documents: ", error);
})
无论当前用户信息如何,当我在 caritems 中获取所有 caritem 时,它都在工作。代码如下。
db.collection('cartitems').get()
.then(snapshot =>{
snapshot.forEach(doc =>{
let cartitem = doc.data()
cartitem.id = doc.id
this.cartitems.push(cartitem)
})
})
我想显示仅与当前用户匹配的 caritem。请帮助:) 谢谢。
解决方案
你必须先检查db.collection('cartitems').where('user', '==', this.user.alias).get()
。是对还是错?然后我认为它不像where('user', '==', this.user.alias)
你应该得到第一个密钥那样直接工作,你可以在firebase中比较它,我希望你理解。
推荐阅读
- r - 无法将 O'Reilly 的书“R in a Nutshell”中的包“nutshell”安装到 Mac 上
- python - Peewee 在使用 IntegerField() 时使用 0 表示无效整数,但我希望将其设置为 NULL
- flutter - 如何将简单的条形图添加到底部导航栏
- javascript - WebdriverIO 中是否有 ScenarioContext - 我们如何为键设置值,然后跨测试场景使用此数据?
- java - java方法覆盖中的奇怪无限循环
- java - 原因:无法确定合适的驱动程序类:spring boot using eclipse
- c# - System.RAP 报告 azure service fabric 项目的属性 IStatelessServiceInstance.OpenDuration 错误警告
- c++ - C/C++ 中数组的大小
- java - Eclipse 没有像我在其他地方看到的那样在我的 maven 项目中显示 src/main/resources
- deep-learning - 有哪些可能的 RNN 修改来改进模型?