尝试在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'
;
答案 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