【发布时间】:2021-09-19 03:11:16
【问题描述】:
我正在尝试创建一个 firebase 函数,该函数会在云存储桶上的对象元数据发生更改时触发,但当该函数触发时我收到错误消息:
ReferenceError: FirebaseFirestore is not defined
at addKapsulFromStorageObject
代码如下:
import * as functions from "firebase-functions";
const { v4: uuidv4 } = require('uuid');
import admin = require('firebase-admin');
import { ObjectMetadata } from "firebase-functions/lib/providers/storage";
admin.initializeApp();
const database = admin.firestore();
database.settings({ ignoreUndefinedProperties: true })
const KAPSUL_COLLECTION_ID = 'kapsuls';
exports.onKapsulFileAdded = functions.storage.object().onFinalize(async (object) =>{
addKapsulFromStorageObject(object);
})
exports.onKapsulMetaDataUpdated = functions.storage.object().onMetadataUpdate(async (object) => {
addKapsulFromStorageObject(object);
});
async function addKapsulFromStorageObject(object: ObjectMetadata) {
const metaData = object.metadata;
if(metaData == null || metaData == undefined) return;
const kapsulId = uuidv4()
console.log("Adding Kapsul to firestore.")
await database.collection(KAPSUL_COLLECTION_ID).doc(kapsulId).set({
id: kapsulId,
coordinates: new FirebaseFirestore.GeoPoint(parseFloat( metaData['lat']), parseFloat(metaData['long'])),
first_name: metaData['first_name'],
last_name: metaData['last_name'],
date: FirebaseFirestore.Timestamp.fromDate(new Date(metaData['date'])),
is_online: JSON.parse(metaData['is_online']),
is_paid: JSON.parse(metaData['is_paid']),
always_unlockable: metaData['always_unlockable'],
title: metaData['title'],
unlock_distance: parseFloat(metaData['unlock_distance']),
video_url: object.mediaLink,
metaData: metaData['thumbnail_url']
});
}
我不太确定发生了什么。
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-cloud-functions google-cloud-storage