Скажем, у меня есть несколько фиктивных данных в моей коллекции users
:
[
{email: 'foo@bar.com', claims: {admin: true}}
{email: 'foo1@bar.com', claims: {admin: true}}
{email: 'foo2@bar.com', claims: {support: true}}
{email: 'foo3@bar.com', claims: {support: true}}
{email: 'foo4@bar.com', claims: {support: true}}
]
Затем у меня есть два запроса:
const admins = this.db.collection('users', (ref) => ref
.where('claims.admin', '==', true));
const support = this.db.collection('users', (ref) => ref
.where('claims.support', '==', true));
, которые я затем объединяю, чтобы получить составной запрос:
this.dataSub = combineLatest(
admins.valueChanges(),
support.valueChanges()
)
.pipe(
map((items) => {
return [].concat(...items);
})
)
.subscribe((items) => {
this.items = items;
});
Теперь я хотел бы добавить в этот запрос что-то вроде orderBy
, но как это будет работать?Помещение в них orderBy
, например:
const admins = this.db.collection('users', (ref) => ref
.where('claims.admin', '==', true)
.orderBy('email', 'asc'));
const support = this.db.collection('users', (ref) => ref
.where('claims.support', '==', true)
.orderBy('email', 'asc'));
И затем объединение результатов не приведет к правильной сортировке окончательного массива элементов, поскольку каждый список отсортирован по отдельности ..
ЭтоТакое ощущение, что это должно быть где-то задокументировано, но это просто не так, как я могу это сделать?