【问题标题】:Ionic 3 - Angular 5 and Firebase - Problem in store dataIonic 3 - Angular 5 和 Firebase - 存储数据中的问题
【发布时间】:2018-09-30 16:26:01
【问题描述】:

我正在尝试使用 Firebase 在 Ionic 中制作一个简单的登录应用程序。

我已经安装了所有依赖项,并设置了登录和注销功能...但是当我尝试创建“配置文件数据”时,firebase 中没有任何反应...这是我的代码:

Profilo.ts

    import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase } from 'angularfire2/database';
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams,  } from 'ionic-angular';

@IonicPage()
@Component({
  selector: 'page-profilo',
  templateUrl: 'profilo.html',
})
export class ProfiloPage {

  profilo = {} as Profilo;

  constructor(private afauth : AngularFireAuth,
    private afDatabase: AngularFireDatabase,
    public navCtrl: NavController, public navParams: NavParams) {
  }

  ionViewDidLoad() {
  }
  getCurrentUser() {
    this.afauth.authState.subscribe(data => {
      console.log('A informacao de data ' + data.uid);
      return data.uid;
    });
  }
  createProfilo() {
      this.afauth.authState.take(1).subscribe(auth => {
      this.afDatabase.object(`profilo/${auth.uid}`).set(this.profilo)
        .then(() => this.navCtrl.setRoot('AccountPage'));
    })

  }

}

Profilo.html

<ion-header>

  <ion-navbar color="primary">
    <ion-title>Profilo</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding>

  <ion-item>
    <ion-label floating>Username</ion-label>
    <ion-input ([ngModel])="profilo.username"></ion-input>
  </ion-item>
  <ion-item>
    <ion-label floating>Nome</ion-label>
    <ion-input ([ngModel])="profilo.nome"></ion-input>
  </ion-item>
  <ion-item>
    <ion-label floating>Cognome</ion-label>
    <ion-input ([ngModel])="profilo.cognome"></ion-input>
  </ion-item>
  <button ion-button color="primary"  (click)="createProfilo()"> Create Profile</button>

</ion-content>

当我调用函数“create Profile”时,它应该在 Firebase 中写入数据,但什么也没发生......我做错了什么?

这也是我的 package.json

dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "5.2.11",
    "@angular/forms": "5.2.11",
    "@angular/http": "5.2.11",
    "@angular/platform-browser": "5.2.11",
    "@angular/platform-browser-dynamic": "5.2.11",
    "@ionic-native/core": "~4.12.0",
    "@ionic-native/splash-screen": "~4.12.0",
    "@ionic-native/status-bar": "~4.12.0",
    "@ionic/storage": "2.2.0",
    "angularfire2": "^5.0.2",
    "firebase": "^5.5.2",
    "ionic-angular": "3.9.2",
    "ionic2-super-tabs": "^4.3.1",
    "ionicons": "3.0.0",
    "ngx-pipes": "^2.3.5",
    "promise-polyfill": "^8.1.0",
    "rxjs": "5.5.11",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.26"
  },

【问题讨论】:

    标签: angular firebase ionic-framework firebase-realtime-database angularfire2


    【解决方案1】:

    您对ngModel 的使用不正确

    <ion-input ([ngModel])="profilo.nome"></ion-input>

    应该是[()]而不是([])

    <ion-input [(ngModel)]="profilo.nome"></ion-input>

    在此处查看工作示例:https://stackblitz.com/edit/ionic-angularfire-auth-profile

    【讨论】:

    • 谢谢哥们...我还真没见过这个错误...!
    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2020-03-10
    • 2021-07-22
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2018-10-10
    相关资源
    最近更新 更多