我是否需要声明(& how)此firebase对象示例或者可能只是调用它?

时间:2018-01-17 11:44:41

标签: angular typescript firebase angularfire2

尝试在angular上实现此firebase示例: -

function writeUserData(userId, name, email, imageUrl) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email,
profile_picture : imageUrl
  });
}

问题:

firebase 对象怎么样?我需要申报吗?怎么样?

如果我在示例中使用它,我收到此控制台错误:

  

错误类型错误:无法读取未定义的属性“数据库”

但我只是不能使它有效,我想它必须声明只是不知道是什么类型或正确的方法...

PS。我使用angularfire2并导入为:

import { AngularFireList, AngularFireDatabase } from 'angularfire2/database';

2 个答案:

答案 0 :(得分:0)

要访问Firebase数据库对象,请注入ReadOnlyArray

AngularFireDatabase

答案 1 :(得分:0)

您当前的代码是原生的Javascript SDK方式,为了以这种方式工作,您需要导入import * as firebase from 'firebase/app';

Angularfire2方式

import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';

在appcomponent

中声明引用itemsRef: AngularFireList<any>;

然后将AngularFireDatabase注入构造函数

constructor(db: AngularFireDatabase) {
    this.itemsRef = db.list('users');
}

现在功能看起来像这样

function writeUserData(userId, name, email, imageUrl) {
    this.itemsRef.update(userId,{
    username: name,
    email: email,
    profile_picture : imageUrl
  });
}

检查示例here