我从firebase数据库中获取用户数据,并使用该数据绑定类对象。数据获取工作正常,但是当我尝试将它与typescript文件中的类对象绑定时,它显示警告"没有找到对象"的实现,但我已经声明了对象。
以下是我的代码,
import { Component } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { AngularFireAuth, AngularFireAuthProvider } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
import { Router } from '@angular/router';
import { UserInfo } from "./models/userInfo";
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
user: Observable<firebase.User>;
currentUser : Observable<UserInfo>;
constructor(public afAuth: AngularFireAuth, public router: Router) {
this.user = afAuth.authState;
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
let fireBaseUser = firebase.auth().currentUser;
if(fireBaseUser)
{
console.log("fire - ", fireBaseUser.uid);
this.currentUser = firebase.database().ref('/users/' + fireBaseUser.uid).once('value').then(function(snapshot) {
console.log(snapshot.val());
return snapshot.val();
});
}
} else {
router.navigateByUrl('/login');
}
});
}
}
以下是我的观点,
user.uid - <div> {{ (user | async)?.uid }} </div> // display correct value
<div> cc - {{ currentUser }} </div> // empty.
以下是错误,
我猜,问题是,我正在尝试在Observable范围内填充currentUser对象。所以它无法找到我的初始化对象。我需要做些什么才能让它发挥作用。