Mon*_*key 13 firebase angularfire firebase-authentication ionic2
我有一个ionic2应用程序,并使用Firebase和angularFire2.我想使用angularFire2从firebase获取当前的身份验证状态和当前的auth对象/用户.
这是迄今为止的工作 - 我可以对用户进行身份验证并订阅FirebaseAuthState以获取facebook用户对象.
constructor(platform: Platform, private auth: FirebaseAuth) {
auth.subscribe((user: FirebaseAuthState) => {
if (user) {
// I could store user in localstorage, but I'd like to see an All Firebase solution
this.rootPage = TabsPage;
} else {
this.rootPage = LoginPage;
}
});
Run Code Online (Sandbox Code Playgroud)
现在我可以在这里设置localstorage并缓存我的用户对象以记住身份验证状态.但是,我很想知道如何在没有实现自己的自定义本地存储密钥的情况下才能使用Firebase.我看到Firebase存储了它自己的localStorage密钥,因此知道它已登录.
如何从代码中获取auth对象?另外,我尝试在AngularFire2文档中列出的示例来渲染模板中的auth状态 - 但这给了我一个错误.
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) {}
}
Run Code Online (Sandbox Code Playgroud)
Csa*_*aba 26
import { AngularFireAuth } from 'angularfire2/auth';constructor(public afAuth: AngularFireAuth) { }校验:
this.afAuth.authState.subscribe(res => {
if (res && res.uid) {
console.log('user is logged in');
} else {
console.log('user not logged in');
}
});
Run Code Online (Sandbox Code Playgroud)afm*_*eva 16
现在,为了获取用户信息,您必须订阅获取身份验证信息.防爆
constructor(public af: AngularFire) {
this.af.auth.subscribe(auth => console.log(auth));// user info is inside auth object
}
Run Code Online (Sandbox Code Playgroud)
如果auth状态不存在,则auth对象将为null
当前的身份验证状态可以从注入中获得FirebaseAuth。您可以获取实际的身份验证数据auth.getAuth()
参见:https : //github.com/angular/angularfire2/blob/master/src/providers/auth.ts#L99
| 归档时间: |
|
| 查看次数: |
22224 次 |
| 最近记录: |