2017-09-18 25 views
0

私はfirebaseを使用してチャットアプリケーションを構築し、firebaseストレージに複数のイメージを送信したいと思います。firebase storageに複数の画像をアップロードするには?

このライブラリを使用して

コンパイル 'com.github.darsh2:MultipleImageSelect:3474549' トップ

private StorageReference storageRef; 
private FirebaseApp app; 
private FirebaseStorage storage; 

のonCreate()メソッド

app = FirebaseApp.getInstance(); 
storage =FirebaseStorage.getInstance(app); 

ボタンクリックアクション

Gallary.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 


       Intent intent = new Intent(ChatActivity.this, AlbumSelectActivity.class); 
       intent.putExtra(Constants.INTENT_EXTRA_LIMIT, 10); 
       startActivityForResult(intent, Constants.REQUEST_CODE); 
       pwindo1.dismiss(); 
      } 
     }); 

活動の結果

if (requestCode == Constants.REQUEST_CODE && resultCode == RESULT_OK) { 
     ArrayList<Image> images = data.getParcelableArrayListExtra(Constants.INTENT_EXTRA_IMAGES); 
     Uri uri = Uri.parse(String.valueOf(images)); 
     storageRef = storage.getReference("photos"); 
     final StorageReference photoRef = storageRef.child(uri.getLastPathSegment()); 
     photoRef.putFile(uri) 
       .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { 
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
         Uri downloadUrl = taskSnapshot.getDownloadUrl(); 
         String content = downloadUrl.toString(); 
         if (content.length() > 0) { 
          editWriteMessage.setText(""); 
          Message newMessage = new Message(); 
          newMessage.text = content; 
          newMessage.idSender = StaticConfig.UID; 
          newMessage.idReceiver = roomId; 
          newMessage.timestamp = System.currentTimeMillis(); 
          FirebaseDatabase.getInstance().getReference().child("message/" + roomId).push().setValue(newMessage); 
         } 
        } 
       }); 

    } 
+0

問題が何ですか。 –

+0

画像をアップロードできません。保存エラーが発生しました –

+0

質問をlogcatから取得できるスタックトレースで編集してください。 –

答えて

0

それは正常に動作しています。

if (requestCode == Constants.REQUEST_CODE && resultCode == RESULT_OK) { 
     ArrayList<Image> images = data.getParcelableArrayListExtra(Constants.INTENT_EXTRA_IMAGES); 
     Uri[] uri=new Uri[images.size()]; 
     for (int i =0 ; i < images.size(); i++) { 
      uri[i] = Uri.parse("file://"+images.get(i).path); 
      storageRef = storage.getReference("photos"); 
      final StorageReference ref = storageRef.child(uri[i].getLastPathSegment()); 
      ref.putFile(uri[i]) 
        .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { 
         public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
          Uri downloadUrl = taskSnapshot.getDownloadUrl(); 
          String content = downloadUrl.toString(); 
          if (content.length() > 0) { 
           editWriteMessage.setText(""); 
           Message newMessage = new Message(); 
           newMessage.text = content; 
           newMessage.idSender = StaticConfig.UID; 
           newMessage.idReceiver = roomId; 
           newMessage.timestamp = System.currentTimeMillis(); 
           FirebaseDatabase.getInstance().getReference().child("message/" + roomId).push().setValue(newMessage); 
          } 
         } 
        }); 

     } 

    } 
+0

ソリューションを投稿していただきありがとうございます –

関連する問題