1
私は、角度とfirebaseに新しいです、私は従うようなサービスを持っているとしましょう、私はでは、ユーザーの電子メールアドレスでログインに基づいてグループを取得していますgetGroups()
法上のデータベースangular2とfirebaseでログインユーザーの詳細を取得できませんか?
import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable,
FirebaseObjectObservable } from 'angularfire2/database';
import { AngularFireAuth } from 'angularfire2/auth';
import { AuthService } from '../../../services/auth.service';
@Injectable()
export class GroupsService {
user: User;
constructor(
private afAuth: AngularFireAuth,
private db: AngularFireDatabase,
) {
this.afAuth.authState.subscribe((loggedInUser) => {
this.user = {
email: loggedInUser.email,
id: loggedInUser.uid
};
console.log(this.user) //getting logged in user info correctly
});
}
getGroups():FirebaseListObservable<any[]>{
console.log(this.user); //unable to get logged in user
return this.db.list('groups',{
query : {
orderByChild: 'createdBy/email',
equalTo: this.user.email
}
});
}
で動作するようにangularfire2
を使用していますその機能について、console.log(this.user);
私はundefined
を取得しています、何かがこの問題を解決する方法をお祈りしますか?
で与えられた情報により、この問題を解決するには、ここに私の答えを見てください。同様の問題のようですhttps://stackoverflow.com/a/46484449/2521893 –
@FredrikLundinは答えてくれてありがとうございますが、私はshare()に疑念があります。 –
共有を使用することで、ユーザーIDはすべての要求ではなく1回だけ取得されます。あなたはそれが働く方法に依存する –