我无法理解查询在AngularFirestore中的工作方式。
我尝试针对我在数据库中已有的用户验证自定义用户名,因为我不希望用户能够选择相同的用户名。不幸的是,我已经失败了。我根据我在这里和其他地方阅读的内容使用了这段代码。
this.users = this.db.collection('/users', ref => ref.where('team', '==', this.user.team));
我很抱歉迷路并询问您可能会考虑的基本问题。我无法理解为什么它无法正常工作。
此致
亨德里克
答案 0 :(得分:0)
我希望我的问题是正确的。 如果它正常工作,试试这个并给我反馈。
constructor(private afs: AngularFirestore) {}
// your function onclick
emailcheck($event) {
let x = $event.target.value;
if (x.trim() == '') {
this.status = 'Email is required';
}
else {
this.status = 'Loading..'
let collectionRef = this.afs.collection('users').ref;
let queryRef = collectionRef.where('email', '==', x);
queryRef.get().then((snap) => {
if (snap.empty) {
this.status = 'OK!';
}
else {
this.status = 'Email already in use!'
}
})
}
如果您使用firebase函数createUserWithEmailAndPassword()
// register function
register() {
firebase.auth().createUserWithEmailAndPassword(inputValue.email, inputValue.password)
.then((success) =>
// your code after Success
)
.catch((error) => {
// your code after fail
var errorCode = error.code;
var errorMessage = error.message;
console.log("ErrorCode: " + errorCode + "<br>ErrorMessage: " + errorMessage);
if(errorCode == 'auth/email-already-in-use') {
// if email already in use
}
if(errorCode == 'auth/invalid-email') {
// if invalid email
}
})
}