В моем приложении у меня есть список, который требует условия "или". Но, как говорят документы :
В этом случае вы должны создать отдельный запрос для каждого условия ИЛИ и объединить результаты запроса в вашем приложении.
В результате в моем сервисе я управляю двумя запросами и отображаю их как единый наблюдаемый список для потребителей.
Проблема возникает с обновлением. У меня есть выбор: выполнить дополнительную работу, чтобы сопоставить элемент, нуждающийся в обновлении, с нужной коллекцией, поэтому я могу сделать следующее:
myCollection.doc(item.id).update(item);
или я могу сделать это намного проще и проще:
angularFirestore.doc(`path/to/${item.id}`).update(item);
Я работаю в предположении, что первый метод приведет к более быстрым обновлениям, поскольку я использую ту же ссылку, что и оптимистично обновляющуюся мгновенно. И что последний будет медленнее в том смысле, что он будет более округлым, обновляя слой постоянства, а затем коллекцию, ссылающуюся на уведомление о более позднем (вероятно, все еще небольшом времени).
Все вышеизложенное является предположением,тем не мение. Я подкрепляю это лишь несколькими случайными случаями, когда я видел, что обновление или удаление заняло секунду или две, чтобы отобразиться в другой части представления, но я не смог на самом деле проверить процесс.
Кто-нибудь знает, правильно ли вышеприведенное? Должен ли я выполнять дополнительную работу, чтобы писать через ссылки на коллекцию, или angularfire (и / или firestore) справляется с этим и делает их фактически той же самой операцией под капотом?