我想向 firebase 实时数据库添加一个新用户,我已设法查询数据库以查找电子邮件输入是否已存在
onSubmit(form: NgForm){
var user = this._visitorService.getIndividualVisitor(form.value.email);
user.valueChanges().subscribe(list=>{
console.log(list);
if(list.length ===0 ){
console.log('email doesnt exist, creating new user');
this._visitorService.addVisitor(form.value)
} else{
console.log('email existst');
this._visitorService.updateVisitor(form.value)
}
})
}
getIndividualVisitor(email:string){
this.list = this.firebase.list('visitors', ref => ref.orderByChild('email').equalTo(email));
return this.list;
}
我遇到的问题是每次更新数据库时都会调用user.valueChanges()
这意味着每次我添加新用户时,也会调用更新用户函数,正确的方法是什么。
我正在使用 "angularfire2": "^5.0.0-rc.4",
和 "firebase": "4.8.0",
最佳答案
我认为将 Firebase Auth 与 Cloud Functions 结合使用可以解决您的问题。
使用Firebase Authentication创建用户。
然后部署一个监听用户 OnCreate 事件的 Cloud Function。
exports.newUser = functions.auth.user().onCreate(event => {
// Add something to your database here.
});
可以在此处找到云函数触发器的文档:Firebase Authentication Triggers
关于javascript - Angular Firebase 2 检查用户是否存在然后添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521736/