ionic firebase: Reference.child не удалось: первый аргумент был неверный путь = "undefined".Пути должны быть непустыми строками и не могут содержать - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь добавить некоторые данные в firebase через аутентификацию и базу данных через регистрационную форму.Я использую ионный для выполнения этой вставки.После нажатия кнопки регистрации аспект аутентификации данных прошел в хранилище аутентификации.Тем не менее, я получаю эту ошибку для хранения других данных.

Я перепробовал все возможное, и поиск решений, похоже, бесполезен

Ниже приведен мой код register.html

<ion-content padding>
<ion-list>

    <ion-item>
      <!--ion-label fixed>Username</ion-label-->
      <ion-input type="text" [(ngModel)]="fullname" name="fullname" placeholder="Fullname"></ion-input>
    </ion-item>

      <ion-item>
      <!--ion-label fixed>Mobile Number</ion-label-->
      <ion-input type="tel" [(ngModel)]="mobilenumber" name="mobilenumber" placeholder="Mobile Number"></ion-input>
    </ion-item>

      <ion-item>
      <!--ion-label fixed>Email</ion-label-->
      <ion-input type="email" [(ngModel)]="email" name="email" placeholder="Email Add. Eg. ola@olasam.com"></ion-input>
    </ion-item>

    <ion-item>
      <!--ion-label fixed>Username</ion-label-->
      <ion-input type="text" [(ngModel)]="username" name="username" placeholder="Username"></ion-input>
    </ion-item>

    <ion-item>
      <!--ion-label fixed>Password</ion-label-->
      <ion-input type="password" [(ngModel)]="password" name="password" placeholder="Password"></ion-input>
    </ion-item>

    <ion-item>
    <ion-label>Gender</ion-label>
    <ion-select [(ngModel)]="gender" name="gender">
      <ion-option value="female">Female</ion-option>
      <ion-option value="male">Male</ion-option>
    </ion-select>
  </ion-item>

  <ion-item>
    <ion-label>Occupation</ion-label>
    <ion-select [(ngModel)]="occupation" name="occupation">
      <ion-option value="student">Student</ion-option>
      <ion-option value="driver">Driver</ion-option>
      <ion-option value="medical officer">Medical Officer</ion-option>
      <ion-option value="software developer">Software Developer</ion-option>
      <ion-option value="farmer">Farmer</ion-option>
      <ion-option value="Academic">Academic</ion-option>
      <ion-option value="Trader">Trader</ion-option>
    </ion-select>
  </ion-item>

  <ion-item>
    <ion-label>Drug Status</ion-label>
    <ion-select [(ngModel)]="drugstatus" name="drugstatus">
      <ion-option value="Clean">Clean</ion-option>
      <ion-option value="Need Help">Need Help</ion-option>
    </ion-select>
  </ion-item>

  <div padding text-center>
      <button ion-button color="danger" round (click)="registerUser()" >Register</button>
  </div>     
  </ion-list>

Мой реестр.ts code

@IonicPage()
@Component({
  selector: 'page-register',
  templateUrl: 'register.html',
  providers: [UsersserviceProvider]
})
export class RegisterPage {

  public fullname : any;
  public mobilenumber : any;
  public email : any;
  public username : any;
  public password : any;
  public gender : any;
  public occupation : any;
  public drugstatus : any;

  constructor(public navCtrl: NavController, public navParams: NavParams, public usersserviceProvider : UsersserviceProvider, 
    public toastCtrl: ToastController, public loadingCtrl: LoadingController) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad RegisterPage');
  }

  registerUser() {

    var account = {
      fullname: this.fullname,
      mobilenumber: this.mobilenumber,
      email: this.email,
      username: this.username,
      password: this.password,
      gender: this.gender,
      occupation: this.occupation,
      drugstatus: this.drugstatus

    };

    var that = this;

    var loader = this.loadingCtrl.create({
      content: "Please wait...",

    });
    loader.present();

    this.usersserviceProvider.registerUserService(account).then(authData => {
        //successful
        loader.dismiss();
        that.navCtrl.setRoot(HomePage);

    }, error => {
loader.dismiss();
     // Unable to log in
      let toast = this.toastCtrl.create({
        message: error,
        duration: 3000,
        position: 'top'
      });
      toast.present();

      that.password = ""//empty the password field

    });

  }

}

Ниже приведен поставщик usersservice.ts

@Injectable()
export class UsersserviceProvider {

  public data: any;
  public fireAuth: any;
  public userProfile: any;

  constructor(public http: Http) {
    this.fireAuth = firebase.auth();
    this.userProfile = firebase.database().ref('users'); //This is where we are storing the rest of the users data. Email and password are stored in a different place which is called Authentication
  }

  loginUserService(email: string, password: string): any {
    return this.fireAuth.signInWithEmailAndPassword(email, password);
  }

  registerUserService(account: {}){


    return this.fireAuth.createUserWithEmailAndPassword(account['email'], account['password']).then((newUser) => {
      //sign in the user
      this.fireAuth.signInWithEmailAndPassword(account['email'], account['password']).then((authenticatedUser) => {
        //successful login, create user profile
      this.userProfile.child(authenticatedUser.uid).set(account);
      });
    });

}


}

Трассировка стека полученной мной ошибки приведена ниже и не ясна.

enter image description here

Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...