Для этого есть 2 шаблона, которые поддерживают работу «Бэкэнд как сервис» и не требуют установки чего-то вроде выделенной виртуальной машины или кластера Kubernetes; помните, что вы всегда можете использовать Cloud Firestore как обычную базу данных документов.
Очереди косвенной записи
Используя правила безопасности, разрешите только создание новых документов в коллекцию с именем write_queue и никому другому:
match /write_queue/{doc} {
allow create: if true;
}
В этой коллекции настройте облачную функцию для запуска при создании:
exports.myFunctionName = functions.firestore
.document('write_queue/{writeId}').onCreate((document, context) => {
// ... Your code here
});
Затем эта функция может принимать эту косвенную запись от пользователя и выполнять любую обработку, которую вы хотите, и, наконец, записывать ее в фактическую коллекцию, для которой она предназначалась в базе данных.
Запись через облачную функцию
Вместо того, чтобы разрешать пользователям писать в базу данных, настройте правила безопасности, чтобы она была доступна только для чтения. Используйте HTTP Cloud Functions в качестве конечной точки, в которую пользователи отправляют любые записи вместо прямой записи в базу данных. Эта облачная функция будет выполнять любую обработку, которую вы захотите, и, наконец, записать ее в фактическую коллекцию, для которой она предназначалась в базе данных.