私はAngular 4アプリで現在ログインしているfirebaseユーザーのUIDを取得しようとしています。私が 'firebase.auth()。currentUser'をコンソールに記録している場合、私は 'null'を取得します。したがって、 'firebase.auth()。currentUser.uid'は、 'nullの' uid 'プロパティを読み取れません。'というエラーが返されます。firebase.auth()。currentUser is null
この記事ではhttps://firebase.google.com/docs/auth/web/manage-usersですが、現在ログインしていないことを意味します。データベースからデータを読み取ることができます(ルールでは認証されていないユーザーが許可されていません)。何か誤りがあった。
私はUID 1を持つユーザーがfirebaseコンソール(.../U/1 /プロジェクト/ 私のプロジェクト /認証/ユーザー)
私のデータベースルールにログインしていることもわかります:
{
"rules": {
"users": {
"$uid": {
".write": "$uid === auth.uid",
".read": "$uid === auth.uid"
}
}
}
}
注:私はFirebaseログイン方法のいずれかを使用していませんよ。私は私のPHPバックエンドを使用してユーザーを確認し、firebase用のカスタムトークンを生成します。ちょうどここに記載されています:https://firebase.google.com/docs/auth/admin/create-custom-tokens。
角度4ログインコード:
constructor(private afAuth: AngularFireAuth) {
this.login();
}
login() {
console.log('We are logging in on Firebase :)');
firebase.auth().signInWithCustomToken(localStorage.getItem('firebase_token')).catch(function (error) {
console.log(error.message);
console.log('You are not logged in!');
});
this.user = firebase.auth().currentUser;
console.log(firebase.auth().currentUser);
console.log(firebase.auth().currentUser.uid);
}
コンソール出力:
chat.service.ts:59 We are logging in on Firebase :)
chat.service.ts:65 null
ChatComponent_Host.html:1 ERROR TypeError: Cannot read property 'uid' of null
at ChatService.Array.concat.ChatService.login (chat.service.ts:66)
at new ChatService (chat.service.ts:23)
at _createClass (core.es5.js:9572)
at _createProviderInstance$1 (core.es5.js:9544)
at resolveNgModuleDep (core.es5.js:9529)
at NgModuleRef_.get (core.es5.js:10615)
at resolveDep (core.es5.js:11118)
at createClass (core.es5.js:10971)
at createDirectiveInstance (core.es5.js:10802)
at createViewNodes (core.es5.js:12230)
at createRootView (core.es5.js:12125)
at callWithDebugContext (core.es5.js:13506)
at Object.debugCreateRootView [as createRootView] (core.es5.js:12823)
at ComponentFactory_.create (core.es5.js:9916)
at ComponentFactoryBoundToModule.create (core.es5.js:3333)
ありがとう!私はAngular 4には比較的新しいので、これについて本当に考えなかった。迅速かつ明確な答えをありがとう! – Kevin
問題ありません!私が助けることができてうれしいです。 –