Как ведет себя SDK администратора в случае сбоя операции Firestore? - PullRequest
0 голосов
/ 18 апреля 2019

Я использую Firebase Admin SDK с облачными функциями.Функция выполняет множественные записи в несколько коллекций Firestore, которые должны быть согласованными.

Теперь я не уверен, как ведет себя операция Firestore, если допустимая операция, такая как запись в документ, завершается неудачно (возможно, из-за космического излучения или чего-то еще).что аналогично маловероятно).

Моментально ли операция возвращает ошибку или есть какой-то механизм повторной попытки или исправления ошибок?

Может быть, это глупый вопрос и не имеет ничего общего сСам SDK.

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Это выдаст ошибку.Если вы заметили, что каждый используемый метод имеет обратный вызов с успехом или ошибкой.

Если вы используете что-то вроде await на узле, вам следует попробовать / catch

Если у вас более одной операции ипроцедура должна быть атомарной и / или все или ничего, затем использовать пакеты

https://firebase.google.com/docs/firestore/manage-data/transactions

Когда встречается функция, если ошибка не обрабатывается, то происходит сбой функции, вы можете изменить повторные попыткидля функций

https://firebase.google.com/docs/functions/retries

1 голос
/ 18 апреля 2019

Прежде всего, если у вас есть несколько документов для записи, которые все должны приземлиться одновременно, атомарно, вы должны использовать пакет или транзакцию , чтобы это произошло.Если какой-либо документ не будет записан по какой-либо причине, то ничего не произойдет ни с одним из упомянутых документов.Если вместо этого вы решите выполнить несколько операций записи, вам нужно найти надежный откат каждого изменения по отдельности, что потребует много работы.

Если вы все же получите ошибку, я неЯ полагаю, что есть какие-либо гарантии относительно условий этой ошибки.Возможно, вы захотите повторить попытку самостоятельно, если только вы не сможете определить, что ошибка не является временной.Чтобы сделать повторные попытки надежными, вы можете включить конфигурацию повторных попыток в функции, разрешить ошибке выйти из функции (не перехватывать ошибку) и позволить Cloud Functions снова вызвать ее для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...