在Firebase存储中上传文件后,我想从我的web应用程序调用Firebase cloud函数,该函数将验证我发送给它的文件数据,然后将其存储在实时数据库中。
我使用以下代码调用该函数:
var fileRef = 'Files/' + user.uid + '/' + fileId + '/' + file.name;
var storage = firebase.storage().ref(fileRef);
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(){
});
});
});
我想根据以下条件验证云函数中的FileName、Size、DownloadURL和UploadDate的值:
-
fileRef包含firebase存储中的现有文件。
-
FileName与fileRef表示的文件名匹配。
-
大小与fileRef表示的文件大小匹配。
-
UploadDate与fileRef表示的文件的创建日期匹配。
-
DownloadURL包含fileRef表示的文件的下载链接。
通过Firebase云功能实现这一点的合适方法是什么?