Я пытаюсь создать облачную функцию Google, которая удаляет изображения, связанные с объектом персонажа в базе данных Firebase в режиме реального времени.) .. Вот код функции:
const functions = require('firebase-functions');
// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
const gcs = require('@google-cloud/storage')({
projectId: "PROJ_ID",
keyFilename: "SERV_ACC.json LOCATED IN FUNCTIONS FOLDER"});
admin.initializeApp(functions.config().firebase);
exports.removePersonImage =
functions.database.ref("users/{userId}/persons/{personId}")
.onDelete((snapshot, context) => {
const person = snapshot.val();
if (!person.photo || !person.photo.key) {
console.log("Person doesn't have photo");
return true;
}
var path = "user/" + context.params.userId + "/" + person.photo.key + ".jpg";
console.log("Bucket path: " + path);
return gcs.bucket(path)
.delete()
.then(() => {
console.log("Image " + person.photo.key + " successfully deleted");
return true;
})
.catch(err => {
console.error("Failed to remove image " + person.photo.key);
console.error("Error: " + err.message);
return false;
});
});