4

Firebase Storageにイメージをアップロードし、いくつかの特定のメタデータをFirebase Cloudに保存しようとしています。 JavaScriptでコーディングしています。イメージをFirebaseストレージに保存し、Firebaseのメタデータを保存するFirestore(Beta)

目標は、たとえば、ユーザが入力する必要があるテキスト入力フィールドから、カスタマイズしたメタデータをFirebase Cloudに設定することです。

私はFirebaseストレージに画像を保存する方法は次のとおりです。

storageRef.child('images/' + file.name).put(file, metadata).then(function(snapshot) { 
 
     console.log('Uploaded', snapshot.totalBytes, 'bytes.'); 
 
     console.log(snapshot.metadata); 
 
     var url = snapshot.downloadURL; 
 
     console.log('File available at', url); 
 
     // [START_EXCLUDE] 
 
     document.getElementById('linkbox').innerHTML = '<a href="' + url + '">Click For File</a>'; 
 
     // [END_EXCLUDE] 
 
     }).catch(function(error) { 
 
     // [START onfailure] 
 
     console.error('Upload failed:', error); 
 
     // [END onfailure] 
 
     }); 
 
     // [END oncomplete] 
 
    }

私はFirebaseクラウドへのメタデータを書き込むためにアップロード機能で別のタスクを統合する方法は考えています。 ご協力いただければ幸いです!

@eykjs @Sam Storie:ありがとうございます。 私のコードを変更しました。今、私はそれを把握することができないエラーがあります、何が間違っています。 エラー:例外TypeError:

var selectedFile; 
 

 
function handleFileSelect(event) { 
 
\t //$(".upload-group").show(); 
 
\t selectedFile = event.target.files[0]; 
 
}; 
 

 
function confirmUpload() { 
 
\t var metadata = { 
 
\t \t contentType: 'image', 
 
\t \t customMetadata: { 
 
\t \t \t 'dogType': 'Lab', 
 
\t \t \t 'title': $("#imgTitle").val(), 
 
\t \t \t 'caption': $("#imgDesc").val() 
 
\t \t }, 
 
\t }; 
 
\t var uploadTask = firebase.storage().ref().child('dogImages/' + selectedFile.name).put(selectedFile, metadata); 
 
\t \t uploadTask.on('state_changed', function(snapshot){ 
 
    \t \t 
 
\t }, function(error) { 
 
    \t 
 
\t }); 
 

 
}

私selectedFileの定義と間違っている何:未定義は( 'selectedFile.name' を評価)オブジェクト

私のコードではないでしょうか? ありがとうございました。

答えて

1

私はあなたがこの後にしているものを理解していれば簡単にFirebase機能を実行する必要があります:

https://firebase.google.com/docs/storage/extend-with-functions

あなたは時にストレージの変更で何か機能を起動し、容易にどちらかリアルタイムにデータを書き込むことができますデータベース、または新しい(Fire)データベースに保存されます。あなたがアップロードを終えた後、たぶん、あなたはFirestoreにデータをアップロードすることができ

exports.generateThumbnail = functions.storage.object().onChange(event => { 
    // ... 
}); 
4

:ここ

は、私はこれがどのように見えるかを確認するために参照されるページから、簡単な抜粋です。

storageRef.child('images/' + file.name).put(file, metadata).then(function(snapshot) { 
console.log('Uploaded', snapshot.totalBytes, 'bytes.'); 

let db = firebase.firestore(); 
let dbRef = db.collection("images").doc(file.name); 

let setData = dbRef.set({ 
    //yourdata here 
    downloadURl: snapshot.downloadURL 
}).then(() => { 
    console.log("Data stored in Firestore!"); 
}); 

// your actions 
+0

これも機能します。 –

関連する問題