Ale*_*289 1 node.js google-cloud-storage firebase google-cloud-functions firebase-storage
所以我有一个使用nodeJS编写的firestore触发器函数,当firestore中的文档被删除时,我也想删除Firebase存储中存储的图像,存储中的文件名称与删除的文档ID相同。这是我的功能:
const functions = require('firebase-functions')
// initialize firestore database
const admin = require("../utilities/firebase_admin_init")
const db = admin.firestore()
const storage = admin.storage()
// firestore reference
const eventRef = db.collection('events')
exports.firestoreDeleteEventCleanUp = functions.firestore.document('events/{eventId}').onDelete((snapshot,context) => {
const eventID = context.params.eventId
// how to delete the image in firebase storage in here ????
})
Run Code Online (Sandbox Code Playgroud)
和管理员初始化
const admin = require("firebase-admin")
const functions = require('firebase-functions')
admin.initializeApp(functions.config().firebase)
module.exports = admin
Run Code Online (Sandbox Code Playgroud)
在Android中,我可以这样做来删除存储中的图像
// Create a storage reference from our app
val storageRef = storage.reference
// Create a reference to the file to delete
val desertRef = storageRef.child("images/desert.jpg")
// Delete the file
desertRef.delete().addOnSuccessListener {
// File deleted successfully
}.addOnFailureListener {
// Uh-oh, an error occurred!
}
Run Code Online (Sandbox Code Playgroud)
但现在我使用的是 admin SDK,我不知道如何使用 admin SDK 删除该文件。我试图在这里阅读文档https://firebase.google.com/docs/storage/admin/start。但我不知道如何删除 firebase 存储中的图像,如下图所示
storageRef.child("images/desert.jpg")如果使用 firestore 触发器相当于什么?
正如您参考的文档项中所述,“Firebase Admin SDK 依赖于 Google Cloud Storage 客户端库来提供 Cloud Storage 访问。” 您应该使用Node.js Client Google Cloud Storage。
尤其需要使用 的bucket()方法Storage和 的delete()方法File,如下:
const functions = require('firebase-functions')
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore() // <- actually this is not needed for the CF below
const storage = admin.storage()
exports.firestoreDeleteEventCleanUp = functions.firestore.document('events/{eventId}').onDelete((snapshot,context) => {
const eventID = context.params.eventId
const defaultBucket = storage.bucket();
const file = defaultBucket.file("eventThumbnail/" + eventID);
return file.delete();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1342 次 |
| 最近记录: |