【问题标题】:Angularfire2 validate username before creating userAngularfire2在创建用户之前验证用户名
【发布时间】:2018-02-06 17:40:56
【问题描述】:

我无法理解查询在 AngularFirestore 中是如何工作的。

我正在尝试针对我在数据库中已有的用户验证自定义用户名,因为我不希望用户能够选择相同的用户名。不幸的是,我已经在这里失败了。我正在根据我在这里和其他地方阅读的内容使用这段代码。

 this.users = this.db.collection('/users', ref => ref.where('team', '==', this.user.team));

我很抱歉迷路了,问了您可能认为是基本问题的问题。我就是想不通为什么它不起作用。

问候,

亨德里克

【问题讨论】:

    标签: firebase angularfire2 angular5


    【解决方案1】:

    我希望我能正确回答您的问题。 试试这个,如果它有效,请给我反馈。

    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
        }
      })
    }
    

    【讨论】:

      猜你喜欢
      • 2020-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 2022-08-05
      • 2015-07-06
      • 2021-09-22
      相关资源
      最近更新 更多