首先,定義你的數據庫結構。下面可能是最好的:
groups
<first group> (Firebase-generated ID)
name: "Cat lovers"
users:
user1ID: true
user2ID: true
<second group>
...
我假設當用戶點擊他想加入的組時,就知道組ID。例如,它可以是select
中option
的value
。
獲取組的列表:
groups$ = this.angularFireDatabase.list('groups');
要填充組列表到一個選擇:
<select>
<option *ngFor="let group of groups$ | async" [value]="group.$key">
{{group.name}}
</option>
</select>
要創建新組:
groups$.push({name: "Dog lovers"})
的選擇(下拉式)將自行更新。在評論的問題
// Define the shape of a group for better type checking.
interface Group { name: string; users: {[userId: string]: boolean;}; }
// Keep local list of groups.
groups$: FirebaseListObservable<Group>;
groups: Group[];
// Keep an updated local copy of groups.
ngOnInit() {
this.angularFireDatabase.list('groups').subscribe(groups => this.groups = groups);
}
function findGroupByName(name) {
return this.groups.find(group => group.name === name);
}
我已經得到了大部分的工作。有沒有辦法在不打印清單並讓他們點擊的情況下獲得ID?說,用戶輸入他們想要加入的避難所名稱,然後在打字稿中找到基於名稱的組,然後抓住它的關鍵字,然後更新其用戶列表? –
FirebaseListObservable不存在find方法。有什麼我需要導入? –
我調用'groups'的組和觀察組之間存在衝突。我重命名了前面的'groups $'。 – 2017-05-09 06:27:26