我看到了关于如何订阅firebase auth事件的示例
this.firebase.onAuth((user) => {})
如何使用angularfire2和ionic2以及angular2项目做同样的事情?
constructor(nav:NavController, private auth: FirebaseAuth) {
auth.onAuth ... // I don't see any subscription events on the firbaseAuth object
}
我在angularfire2文档中看到了这种语法,但不确定|
语法的含义以及如何从控制器代码中的@Component声明中执行相同的逻辑:
import {FirebaseAuth} from 'angularfire2';
@Component({
selector: 'auth-status',
template: `
<div *ng-if="auth | async">You are logged in</div>
<div *ng-if="!(auth | async)">Please log in</div>
`
})
class App {
constructor (@Inject(FirebaseAuth) public auth: FirebaseAuth) {}
}
答案 0 :(得分:2)
我不知道Iconic,但使用angularafire2(2.0.0-beta.2)。这是如何做到这一点。假设已经设置了项目,以便AngularFire是一个可注射服务。 (我按照Angularfire2 Github的说明进行操作。)
@Component({
.. blah, blah, blah
})
export class MyComponent{
constructor(private AngularFire af){
af.subscribe.auth(auth => {
//the auth object contains the logged in user info
// if one exists.
console.log(auth)
});
}
为了从html模板引用auth对象(如在你的例子中),只需将调用返回的auth对象存储为subscribe作为成员变量。您的模板代码只是检查非null以确定是否有登录用户。
答案 1 :(得分:0)
这已在"angularfire2": "^4.0.0-rc.1"
订阅现在位于authState
import { AngularFireAuth } from 'angularfire2/auth';
因此,在ngModule
中,您需要添加
import { AngularFireAuthModule } from 'angularfire2/auth';
然后将其添加到您的导入中,然后添加到app.components.ts
this.af.authState.subscribe(auth => {
console.log(auth);
});