что произойдет, если я превышаю скорость операций записи для отдельной коллекции более чем на 1000 операций в секунду? - PullRequest
0 голосов
/ 05 февраля 2020

в настоящее время я хочу сделать систему уведомлений, у меня есть root коллекция с именем notifications, и внутри каждого документа уведомления у меня будет receivers подколлекция

Я напишу некоторые идентификаторы пользователя внутри receivers подколлекции, используя Пакетная операция, как это в моей функции вызываемого облака

    let batch = db.batch()

    querySnapshot.docs.forEach( snapshot => {

        const data = snapshot.data()
        const userID = data.userID

        let notificationReceiverRef = db.doc(`notifications/${notificationID}/receivers/${ID}`)
        batch.set(notificationReceiverRef, {
            userID: userID,
            createdAt: now
        })


    })


    await batch.commit()

, но я только что прочитал некоторые ограничения в firestore в здесь , сказано, что я должен сохранить скорость операций записи для отдельного сбор до 1000 операций в секунду.

в моем приложении есть вероятность, что я напишу около 10.000 - 50.000 документов в подколлекции receivers, чтобы вести учет получателя уведомления.

но я не знаю, буду ли я превышать эту 1000 операций в секунду или нет, если использую пакетную операцию, как код, который я пишу выше. будет ли облачная функция автоматически управлять этим? если нет, что произойдет, если я превыслю этот лимит?

У меня нет других идей, как хранить много записей, но также соблюдать лимит.

1 Ответ

0 голосов
/ 05 февраля 2020

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

Вам нужно будет тщательно подумать о том, как вы на самом деле повторите попытку. Это почти наверняка не будет автоматически для вас так, как вы хотите. Вы можете настроить облачную функцию для включения повторных попыток, но она работает только для фоновой функции, управляемой событием, и будет повторять все событие. Триггеры HTTP не имеют конфигурации повторных попыток - их нужно будет повторить с клиента.

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