我使用了以下登录方法:
login() {
this.auth.login();
this.authService.login().subscribe(() => {
if (this.authService.isLoggedIn) {
console.log("ADDING THE USER..");
// Add a new user to the users table
this.af.child("users").child(this.authService.userData.uid).set({
provider: this.authService.userData.provider,
name: this.getName(this.authService.userData)
});
// Redirect the user
this.router.navigate(['/panel']);
}
});
}
与文档中的方法几乎相同:https://www.firebase.com/docs/web/guide/user-auth.html#section-storing
当我运行我的应用时,我收到以下错误:
Property 'child' does not exist on type 'AngularFire'.
并且未添加用户。怎么了?
我只需要在Firebase数据库中添加新对象即可。 以下工作,但我需要如上所示的结构:
this.users = this.af.database.list('/users');
this.users.push("TEST");
那么,我如何使用https://www.firebase.com/docs/web/guide/user-auth.html#section-storing中的相同结构将新用户对象添加到我的数据库中?以及为什么我不能运行我的代码,如果它与记录的相同?
更新
我的新代码:
this.af.database.object('/users/${this.authService.userData.uid}').set({
provider: this.authService.userData.provider,
name: this.getName(this.authService.userData)
});
答案 0 :(得分:4)
使用object()
;孩子()确实存在:
this.af.database.object(`users/${this.authService.userData.uid}`).set({...})
答案 1 :(得分:0)
这是一个较短的版本。
import { AngularFireDatabase } from "angularfire2";
...
constructor(private afd: AngularFireDatabase) {}
...
this.afd.object(`users/${this.authService.userData.uid}`).set({...});