Javascript 重定向到主页

Javascript 重定向到主页,javascript,vue.js,Javascript,Vue.js,我的vue注册中存在以下问题。当我单击“注册”时,它会将我重定向到主页。也许使用一些条件可以解决这个问题。我怎样才能防止这种情况发生?有什么想法吗? 我的Javascript: register() { firebase .auth() .createUserWithEmailAndPassword(this.email, this.lozinka) .then( function() { conso

我的vue注册中存在以下问题。当我单击“注册”时,它会将我重定向到主页。也许使用一些条件可以解决这个问题。我怎样才能防止这种情况发生?有什么想法吗? 我的Javascript:

register() {
      firebase 
        .auth()
        .createUserWithEmailAndPassword(this.email, this.lozinka)
        .then(
        function() {
         console.log('Success'); 
         let id = this.email
          db.collection("user")
          .doc(id)
          .set({
            korisnicko_ime: this.korisnicko_ime,
            email: this.email,
            lokacija: this.lokacija,
            ime_objekta: this.ime_objekta,
            kontakt: this.kontakt,
          })
          .then((doc) => {
                console.log("Saved", doc)
            })
              })
              .catch(function(error) {
                console.error("Error...", error);
                if ( store.currentUser=null ) {
                  this.$router.replace({ name: 'Register'});
                }
              });
        
        console.log('Continue'); 
        this.$router.replace({ name: 'Home'});
        
    },

我不知道您实际上想要实现什么,但您正在做的是发出请求,根据请求的承诺注册回调,并立即替换当前路线

register() {
  firebase
    .auth()
    .createUserWithEmailAndPassword(this.email, this.lozinka)
    .then(successCallback)
    .catch(errorCallback);

  this.$router.replace({ name: 'Home'});
}
我猜您可能希望等待注册请求的响应,并根据承诺是否成功解决或出现错误来重定向用户

首先,您可能应该更深入地了解

  • Promises及其异步/等待语法
  • 使用const-over-let/var
async register() {
  try {
    const registerResponse = await firebase
      .auth()
      .createUserWithEmailAndPassword(this.email, this.lozinka);

    console.log("Success");
    const id = this.email;

    const collectionResponse = await db
      .collection("user")
      .doc(id)
      .set({
        korisnicko_ime: this.korisnicko_ime,
        email: this.email,
        lokacija: this.lokacija,
        ime_objekta: this.ime_objekta,
        kontakt: this.kontakt,
      });

    console.log("Saved", doc);

    // After everything was successfull, redirect to home
    this.$router.replace({ name: 'Home'});

  } catch(error) {
    console.error("Error...", error);

    if ((store.currentUser = null)) this.$router.replace({ name: "Register" });
  }
}