Angular2 with Firebase - 无法读取属性'数据库'未定义的

时间:2018-02-21 04:14:48

标签: angular firebase firebase-realtime-database ionic2 angular2-services

我在我的应用程序中使用Ionic,Angular2和Firebase。

当用户注册时,我想在我的数据库中发送数据并填充用户的个人资料。

这是我正在做的事情:

app.module.ts:

import { AngularFireDatabaseModule } from 'angularfire2/database';
...
imports: [
  BrowserModule,
  IonicModule.forRoot(MyApp),
  AngularFireModule.initializeApp(FIREBASE_CONFIG),
  AngularFireAuthModule,
  AngularFireDatabaseModule, //<-- angular firebase database
  IonicStorageModule.forRoot()
],

login.ts:

import { AngularFireDatabase } from 'angularfire2/database';
...
export class LoginPage {
  user = {} as User;

  constructor(
    private afAuth: AngularFireAuth,
    private storage: Storage,
    private database: AngularFireDatabase, //database
    public navCtrl: NavController,
    public navParams: NavParams) {

  }

  //this code gets called when the user presses the register button
  async register(user: User) {
    try {
      const result = await this.afAuth.auth.createUserWithEmailAndPassword(user.email, user.password);
      this.afAuth.auth.currentUser.updateProfile({
        displayName: user.displayName
      }).then(function() {
        let currentUser = result;
        let userData = {
          email: currentUser.email,
          name: currentUser.displayName,
          uid: currentUser.uid,
          created: new Date(),
        }
        this.database.list('users').set(userData.uid, userData); //<-- This is where error occurs.
      }, function(error) {
        console.log(error)
      });
      console.log(result);
    } catch(e) {
      console.log(e);
    }
  }

}

除了数据库之外,一切似乎都很有效。我可以注册用户并登录但是当我尝试将userData发送到我的数据库时,我收到错误:

  

错误类型错误:无法读取属性&#39;数据库&#39;未定义的

有没有人有任何想法?我是Angular2的新手,所以这可能是一个非常简单的修复方法!

谢谢。

0 个答案:

没有答案