【问题标题】:Validate storage file data in Firebase cloud function验证 Firebase 云功能中的存储文件数据
【发布时间】:2018-10-28 21:18:58
【问题描述】:

在 Firebase 存储中上传文件后,我想从我的网络应用程序调用一个 firebase 云函数,该函数将验证我发送给它的文件数据,然后将其存储在实时数据库中。

我正在使用以下代码调用该函数:

var fileRef = 'Files/' + user.uid + '/' + fileId + '/' + file.name;
var storage = firebase.storage().ref(fileRef);
//Upload the file
//..................
// After uploading the file
storage.getMetadata().then(function(metadata) {
    var date = metadata.timeCreated.toString();
    var storage = firebase.storage().ref('Files/' + user.uid + '/' + fileId + '/' + file.name);

    storage.getDownloadURL().then(function(url){
        var saveFileData = functions.httpsCallable('saveFileData');
        saveFileData({
            fileId: fileId,
            fileRef: fileRef,
            fileData: {
                Uploader: user.uid,
                Title: title,
                FileName: file.name,
                Size: fileSize,
                DownloadURL: url,
                UploadDate: date,
            }
        }).then(function(){
            // Do something
        });
    });
});

我想根据以下条件验证云函数中的 FileName、Size、DownloadURL 和 UploadDate 的值:

  • fileRef 包含来自 Firebase 存储的现有文件。
  • FileName 与 fileRef 表示的文件的名称匹配。
  • 大小与由 fileRef 表示的文件的大小相匹配。
  • UploadDate 与 fileRef 表示的文件的创建日期匹配。
  • DownloadURL 包含由 fileRef 表示的文件的下载链接。

从 Firebase 云功能执行此操作的合适方法是什么?

【问题讨论】:

标签: validation firebase google-cloud-storage google-cloud-functions


【解决方案1】:

您可以使用存储触发器,在 Firebase Cloud Functions 中部署,

在对象中,您将获得上传文件的所有元数据,如here

exports.generateMetaForUpload = functions.storage
  .object()
  .onFinalize(object => {
    console.log(object);
       //do whatever you need to verify
  });

【讨论】:

    猜你喜欢
    • 2019-08-08
    • 2021-01-12
    • 2021-10-16
    • 2018-11-17
    • 2017-12-21
    • 1970-01-01
    • 2017-10-09
    • 2019-01-16
    • 2018-11-13
    相关资源
    最近更新 更多