イメージをfirebaseストレージにアップロードし、firebaseデータベースにリンクを保存します。データベースへのリンクを保存するのは何らかの理由で失敗する可能性があり、ストレージ内に未使用のリンクされていないイメージがあります。どういうわけか画像へのアップロードリンクがデータベースに保存されていることを確認することは可能ですか?イメージをfirebaseストレージにアップロードし、データベース内の参照を単一のトランザクションで保存する方法はありますか?
答えて
これは、トランザクションを使用する以外の方法です。 Firebase Cloud Functions Storage Triggerを使用できます。アップロードされた画像のダウンロードURLを取得し、それをfirebaseデータベースにプッシュするクラウド機能を記述することができます。
Check this video by firebase about Cloud Function Storage Trigger
はい、あなたはこのようなあなたの仕事にaddOnSuccessListener
を使用することができます。
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUrl = taskSnapshot.getDownloadUrl();
firebaseRef.child("urls").child("urlId1").setValue(downloadUrl.toString);
}
});
これは、アップロードが成功した場合にのみ、あなたはデータベースへのURLを足すされていることを意味します。
私の問題は異なります。これは、 'データベースへの更新と共に画像のみをアップロードする'です。したがって、どちらかが成功するか両方が失敗します。 – Aleksey
そのため、2つの別々の操作を行う必要があります。あなたが求めていたものではありませんか?アップロードに失敗すると、データベースに何も書き込まれず、アップロードが成功した場合にのみ、URLがデータベースに書き込まれます。また、データを書き込むときに 'addOnCompleteListener()'を使うこともできます。 –
アップロードが成功すると、何らかの理由でURLがデータベースに書き込まれず(ユーザーがブラウザを閉じたとします)、どこにも参照されていないストレージ内にイメージがあります。 – Aleksey
私はあなたがイメージがfirebaseでアップロードを取得するために、storageRefからURLを取得し、以下のようにデータベースにURLをプッシュ待つことをお勧め。 私はjavascriptメソッドを使用しています、あなたはあなたのニーズを達成するためのアイデアを得ることを願っています。 JSファイルで
<input type="file" value="" name="Photo" class="btn btn-info" id="fileButton" accept="image/*"> //html Code
、私はこれがあなたの役に立てば幸い
var fileButton = document.getElementById('fileButton');
fileButton.addEventListener("change",function(e){
var file= e.target.files[0];
//create storage ref to the firebase storage
var storageRef = firebase.storage().ref('your Path Name').child(file.name);
var task = storageRef.put(file);
task.on("state_changed",function(snapshot){
var percentage= snapshot.bytesTransferred/snapshot.totalBytes) *100;
if(percentage==100){
storageRef.getDownloadURL().then(function (url) {
// You will get the Url here.
var firebaseRef=firebase.database().ref("Your path Name);
firebaseRef.push(url).then(function(){
alert("Image Uploaded and also updated to the database");
});
});
}
});
});
のようにイベントリスナーを追加し、これは、単一のトランザクションで行われます。
- 1. Firebase:ビデオをストレージに保存し、ビデオURLをデータベースに保存する方法は?
- 2. 一意のイメージのみをストレージに保存する方法は?
- 3. イメージをアップロードしてCodeigniterのデータベースに保存する方法は?
- 4. イメージをFirebaseストレージに保存し、Firebaseのメタデータを保存するFirestore(Beta)
- 5. Firebaseストレージ内のフォルダに含まれるイメージを参照し、リサイクラビューで表示する方法
- 6. イメージをアップロードしてデータベースに保存する方法は?
- 7. バッファの値をマップに保存し、その参照を保存する方法はありますか?
- 8. イメージのFirebase Storageへのアップロードを完了し、イメージベースをFirebaseデータベースに保存する方法
- 9. キャプチャされたイメージを内部ストレージに保存する方法
- 10. イメージをストレージにアップロードした後のfirebase updateデータベース
- 11. firebaseデータベースからイメージをダウンロードするURLを取得し、firebaseデータベースに保存する方法は?
- 12. イメージをキャプチャして内部のストレージに保存します
- 13. FileSystemのNodeJsでイメージをアップロードし、MongoDBにパスを保存する簡単な例はありますか?
- 14. データベースから単一イメージを更新する(複数のイメージはカンマ区切りで保存されます)
- 15. FirebaseストレージのダウンロードURLをFirebaseデータベースに送信する前に参照
- 16. Firebaseの機能では、使用後にデータベース参照をクリーンアップする方法はありますか?
- 17. タイマーをデータベースに保存する方法はありますか?
- 18. イメージをデータベースに保存する必要がありますか?
- 19. Androidのfirebaseイメージをサイズ変更し、firebaseのストレージにアップロード
- 20. イメージをアップロードして反応を使用してデータベースに保存する方法
- 21. 2D配列を永続ストレージに保存する方法はありますか?
- 22. Firebaseデータベースからローカルストレージに複数のイメージを保存する
- 23. FirebaseのストレージからイメージのURLを取得する方法は?
- 24. イメージをFirebaseにアップロードすると、Database RealtimeのイメージURLがfirebaseストレージとは異なるイメージURLです。
- 25. firebaseデータベースにファイルのパスをアンドロイドで保存する方法は?
- 26. イメージをキャプチャしてストレージに保存し、ImageViewで表示する方法は?
- 27. 単一の非繰り返しデータをデータベースに保存する最良の方法は何ですか?
- 28. Base64でエンコードされたイメージをFirebaseストレージに保存
- 29. iphoneにプログラムでdefault.pngイメージを保存する方法はありますか?
- 30. データベースにデータを保存せずにクッキー内の "remember me"トークンを保護する方法はありますか?
これはこれまでのところ最良の解決策ですが、トリガー自体が何らかの理由で失敗する可能性がありますが、その確率はユーザーのブラウザを閉じるなどと比べてずっと低いです。 – Aleksey
私はAndroidアプリでクラウド機能を使用しています。私はトリガーが今まで失敗したときには、決してカカシを持っていません。 –