Я хочу развернуть облачную функцию, написанную на TypeScript, используя триггер Firestore.Скрипт работает без проблем.Однако мне нужно будет указать регион выполнения, чтобы соответствовать моей RGPD, мне нужно, чтобы функции выполнялись в europe-west1.Я посмотрел документацию по этому вопросу, указано, что в функцию добавлено «.region», однако это приводит к ошибке, которую вы обнаружите в приложении. Полученная ошибка: «ошибка TS2339: свойство 'region' не существует для типа'DocumentBuilder. Я хотел бы отметить, что у меня нет локальных ошибок в VSC, только то, что я подключен к Firebase.
Index.ts
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
const db = admin.firestore();
const fcm = admin.messaging();
export const sendToDevice = functions.firestore
.document('orders/{orderId}')
.region('europe-west1')
.onCreate(async snapshot => {
const order = snapshot.data();
const querySnapshot = await db
.collection('users')
.doc(order.seller)
.collection('tokens')
.get();
const tokens = querySnapshot.docs.map(snap => snap.id);
const payload: admin.messaging.MessagingPayload = {
notification: {
title: 'New Order!',
body: `you sold a ${order.product} for ${order.total}`,
icon: 'your-icon-url',
click_action: 'FLUTTER_NOTIFICATION_CLICK'
}
};
return fcm.sendToDevice(tokens, payload);
});
package.json:
{
"name": "functions",
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc",
"serve": "npm run build && firebase serve --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "8"
},
"main": "lib/index.js",
"dependencies": {
"firebase-admin": "^8.0.0",
"firebase-functions": "^3.1.0"
},
"devDependencies": {
"tslint": "^5.12.0",
"typescript": "^3.2.2"
},
"private": true
}
Спасибо за ваш будущий ответ. введите описание изображения здесь