Интеграция Ioni c 4 & Firebase - PullRequest
       18

Интеграция Ioni c 4 & Firebase

0 голосов
/ 26 февраля 2020

Итак, я довольно нуб, когда дело доходит до интеграции с IONI c 4 Firebase. По сути, мне удалось заставить аутентификацию firebase работать, но проблема в том, что я не могу сохранить введенные пользователем данные на странице регистрации в базе данных firebase. Мне нужно, чтобы он работал, так как я хотел бы связать пользователя с его / ее контрольным списком.

Это моя страница регистрации.ts

import { Component, OnInit } from '@angular/core';
import { Router } from "@angular/router";
import { Platform, AlertController } from '@ionic/angular';
import { LoadingController, ToastController } from '@ionic/angular';
import { AngularFireAuth } from '@angular/fire/auth';


//disable side menu
import { MenuController } from '@ionic/angular';


@Component({
  selector: 'app-signup',
  templateUrl: './signup.page.html',
  styleUrls: ['./signup.page.scss'],
})
export class SignupPage implements OnInit {

  email: string = '';
  password: string = '';
  error: string = '';
  username: string = '';

  constructor(
    private fireauth: AngularFireAuth,
    public router: Router,
    public menuCtrl: MenuController,
    private toastController: ToastController, 
    private platform: Platform, 
    public loadingController: LoadingController,
    public alertController: AlertController
  ) { }

  async openLoader() {
    const loading = await this.loadingController.create({
      message: 'Please Wait ...',
      duration: 2000
    });
    await loading.present();
  }
  async closeLoading() {
    return await this.loadingController.dismiss();
  }

  signup() {
    this.fireauth.auth.createUserWithEmailAndPassword(this.email, this.password)
      .then(res => {
        if (res.user) {
          console.log(res.user);
          this.updateProfile();
        }
      })
      .catch(err => {
        console.log(`login failed ${err}`);
        this.error = err.message;
      });
  }

  updateProfile() {
    this.fireauth.auth.onAuthStateChanged((user) => {
      if (user) {
        console.log(user);
        user.updateProfile({
          displayName: this.username
        })
          .then(() => {
            this.router.navigateByUrl('/login');
          })
      }
    })
  }

  async presentToast(message, show_button, position, duration) {
    const toast = await this.toastController.create({
      message: message,
      showCloseButton: show_button,
      position: position,
      duration: duration
    });
    toast.present();
  }


  ionViewWillEnter (){
    this.menuCtrl.enable(false);
  }

  ngOnInit(){}

}

1 Ответ

0 голосов
/ 26 февраля 2020

На самом деле вы не используете базу данных firebase. Метод user.updateProfile сохраняет свойство displayName в системе Firebase Auth. Эта информация сохраняется в системе Firebase Auth.

...