2017-12-17 26 views
0

イメージを正常に保存し、サウンドを録音してFirebaseに保存しました。しかし、オーディオファイルは複数のファイルを保存できません。別の録音を保存しようとすると、古いレコードが置き換えられ、Firebaseには1つのファイルしか保存されません。 Firebaseで古いレコードを置き換えずに新しいレコードを保存するにはどうしたらいいですか?ここでFirebaseにオーディオファイルを保存するには

Uri uriAudio = Uri.fromFile(new File(audioFilePath).getAbsoluteFile()); 
     final StorageReference filePath = ref.child("Education/image").child(uriImage.getLastPathSegment()); 
     final StorageReference audioRef = ref.child("Education/audio").child(uriAudio.getLastPathSegment()); 


       // on success upload audio 
       audioRef.putFile(uriAudio).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
        @Override 
        public void onSuccess(final UploadTask.TaskSnapshot audioSnapshot) { 

         //upload image 
         filePath.putFile(uriImage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
          @Override 
          public void onSuccess(final UploadTask.TaskSnapshot imageSnapshot) { 

           mProgress.dismiss(); 

         @SuppressWarnings("VisibleForTests") Uri audioUrl= audioSnapshot.getDownloadUrl(); 
         @SuppressWarnings("VisibleForTests") Uri imageUrl= imageSnapshot.getDownloadUrl(); 

はFirebaseストレージのオーディオファイルの添付 Here is the attachment for audio file in Firebase Storage

答えて

0

はい、あなたができることです。このためには、オーディオファイルをアップロードするたびに、オーディオファイルの別の名前を指定する必要があります。同じ名前でアップロードを続けると、毎回オーディオが上書きされます。残念なことにFirebase Storage(firebaseデータベースのpush()メソッドのような)に一意のオーディオファイル名を生成する組み込みメソッドはありません。

グローバルに一意のオーディオファイル名を使用するには、それらの名前を自分で生成する必要があります。 Firebaseデータベースのpush()メソッドを使用する方法もありますが、他にもGUID-generatorを使用することもできます。

+0

が、それはあまりにも動作しますが、複数のファイルを保存するために取り組んでいるされて感謝=) – Muci

0

ファイル名の代わりにタイムスタンプを使用して、その作業は、これは、私の古いコーディング、

audioFilePath = 
      Environment.getExternalStorageDirectory().getAbsolutePath() 
        + "/myaudio.3gp"; 

タイムスタンプを使用しては

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    audioFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + timeStamp; 
+0

2人のユーザーが同じ時間にオーディオファイルを保存するとどうなりますか?あなたは同じ問題を抱えてしまうでしょう。あなたのデータはオーバーライドされます。 'push()'メソッドを使うと、この問題を起こす方法はありません。さらに、 'push()'メソッドは時間に基づいています... –

関連する問題