私はFirebaseとAngular2の統合を初めて行ったので、私の礼儀を許してください。
私はFirebugデータベースに接続するためにAngularFire2プラグインを使用しており、GitHubドキュメントをそのまま使用しています。
私はFirebaseObjectObservable
を取得する際に、今までは、私はドキュメントに記述async
パイプ使用して、私のHTMLで表示:
To get the object in realtime, create an object binding as a property of your component or service. Then in your template, you can use the async pipe to unwrap the binding.
HTML:
<ion-list *ngFor="let member of _tripMembers">
<ion-item>
<ion-avatar item-left>
<img src="{{ (member | async)?.photoUrl }}">
</ion-avatar>
<ion-label>{{ (member | async)?.firstName }} {{ (member | async)?.lastName }}</ion-label>
<ion-checkbox color="positive" [(ngModel)]="member.checked" (click)="toggleClicked(member, !member.checked)" item-right></ion-checkbox>
</ion-item>
</ion-list>
toggleClicked
を呼び出しますion-checkbox
がクリックされたときに機能します。最初に渡すパラメータはメンバーのキーであり、フルメンバーではありません(表示されています)。これはmember.$key
を単に使用しているとして文書のhereに記述されていますが、それはundefined
を返します。
私が使用してasync
パイプを使用して、再びキーを表示することができます:あなたはそこにパイプを持つことができないよう(member | async).$key
しかし、私は、引数リストの中にこれを行うことはできません。
EDIT:
_tripMembers
はFirebaseObjectObservable
年代を保持しているだけで、基本的なJSの配列です。 member
は火災ベースの個々のアイテムであるため、FirebaseObjectObservable
であり、FirebaseListObservable
ではないと思います。ドキュメントの例では、アイテムのLISTを取得している場合、FirebaseListObservable
を使用しています。あなただけの個々の項目を取得している場合は、FirebaseObjectObservable
を使用することになり
getUserWithID(userID): FirebaseObjectObservable<any> {
return this.af.database.object('users/' + userID);
}
setTripMembers(): void {
allUsers.forEach((user) => {
tripMembersID.forEach((member) => {
if (user.$key === member) {
tripMembers.push(getUserWithID(user.$key));
}
});
});
let modal = this.modalCtrl.create(LocationModal, {
name: name,
members: tripMembers
});
}
これは間違っている、(私は何をやっているされていますか)?個々のアイテムをFirebaseListObservable
にする必要がありますか?はいの場合、私はFirebaseObjectObservable
がどのようなシナリオで説明されているかを教えてください。
_tripMembers
はFirebaseListObservable<FirebaseObjectObservable>
である必要がありますか?
:
はそれはのようなものを探して終わるかもしれません。 – wmash
あなたが 'FirebaseListObservable'の代わりに' FirebaseObjectObservable'を使用していたことに気付くほど気をつけなかったので、 '_tripMembers'は配列ではなく配列であるはずです。オブジェクト。 – patrickmcd
'_tripMembers'は' FirebaseObjectObservable'の配列ではないでしょうか?私はそれが、それぞれのメンバーがfirebaseの個々のアイテムであることを見ているオブジェクトだと思っていました。私。メンバーはユーザーではありません。 – wmash