Как удалить файлы из хранилища Firebase при удалении документа, на который есть ссылка на этот файл? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть приложение Angular, оно включает в себя элементы, каждый элемент которых имеет свое изображение, загруженное в хранилище Firebase, и имеет свойство img, которое ссылается на URL-адрес изображения. Я хочу удалить изображение при удалении документа, как это сделать правильно?

1 Ответ

2 голосов
/ 27 апреля 2019

Вы можете использовать облачную функцию, запускаемую через событие onDelete, см. https://firebase.google.com/docs/functions/firestore-events.

Затем в облачной функции для удаления файла в облачном хранилище вы используете клиентский API-интерфейс Google Cloud Storage Node.js .

Давайте представим, что bucket и name - это поля документа Firestore, которые содержат область файла и имя (т. Е. «Свойство img, ссылающееся на URL-адрес изображения»), тогда вы можете сделать что-то по следующему линии:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const defaultStorage = admin.storage();


exports.deleteFile = functions.firestore
    .document('fileDocuments/{fileDocID}')
    .onDelete((snap, context) => {
      const deletedValue = snap.data();
      const fileBucket = deletedValue.bucket;
      const fileName = deletedValue.name;

      return defaultStorage
        .bucket(fileBucket)
        .file(fileName)
        .delete();

});

Вы можете изучить следующие официальные образцы или документацию по облачным функциям:

https://firebase.google.com/docs/functions/video-series

https://github.com/firebase/functions-samples

https://cloud.google.com/nodejs/docs/reference/storage/2.5.x/File#delete

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