我正在将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存储在“ user”中。 我想仅在“当前用户别名= 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);
})
无论我当前的用户信息如何,当我在Cartitems中提取所有Cartitem时, 它正在工作。代码如下。
db.collection('cartitems').get()
.then(snapshot =>{
snapshot.forEach(doc =>{
let cartitem = doc.data()
cartitem.id = doc.id
this.cartitems.push(cartitem)
})
})
我想显示仅与当前用户匹配的Cartitem。请帮忙:) 谢谢。
答案 0 :(得分:0)
您必须先检查db.collection('cartitems').where('user', '==', this.user.alias).get()
。是对还是错?然后我认为它不像where('user', '==', this.user.alias)
那样直接起作用,您应该获得第一把钥匙,并且您可以比较它,这是我希望您理解的firebase方式。