Самый простой способ - это немного реструктурировать ваш документ. Вместо того, чтобы хранить каждый «someid» как свойство, создайте массив карт в виде отдельного свойства в документе Firestore. Например, следующий документ будет выглядеть следующим образом:
ids: [
{id: someida, name: steve, alias: cap, etc},
{id: someidb, name: tony, alias: iron, etc},
{id: someidc, name: nat, alias: black, etc}
]
, где id , name , alias являются свойствами объект, а ids - это массив типа этого объекта.
Теперь вы можете легко извлечь нужные данные из этого массива в своем приложении. Так как вы, вероятно, используете AngularFire, вы можете получить этот документ, вызвав следующий API в ngOnInit:
ngOnInit() {
this.users = await this.angularFirestore.collection(YOUR_COLLECTION).doc(YOUR_DOCUMENT).get()
.pipe(map(result => result.data().ids as Array<OBJECT_TYPE>))
.toPromise();
}
getAlias(requestedId: string) {
return this.users.find(ob => ob.id === requestedId).alias;
}
isUserAvailable(requestedId: string): boolean {
return !!this.users.find(ob => ob.id === requestedId);
}
Чтобы получить псевдоним из "someid c", вы можете вызвать следующая функция: this.getAlias("someidc")
И чтобы узнать, доступен ли определенный идентификатор: this.isUserAvailable("someida")
Конечно, обязательно вызовите эти функции после того, как вы сделали свой вызов Пожарная. ngOnInit должен позаботиться об этом за вас.