Если у вас есть 5 изображений, эти 5 изображений должны содержать другой imgUrl, вы повторяете N раз для загрузки кода в Firebase Storage с той же самой uploadTask
UploadTask uploadTask = storageReference.putFile(imgUrl); --> This same task
tasks.add(uploadTask);
for (UploadTask str : tasks) { --> is repeating N times with the same imgUrl
Task<Uri> urlTask = str.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
...
Что вам нужно сделать, это переместить ваш цикл forEach для обработки каждого отдельного imgUrl и последующей загрузки каждого в ваше хранилище, например
псевдокод
forEach(imgUrl) {
uploadtask = storageReference.putFile(imgUrl);
tasks.add(uploadTask);
Task<Uri> urlTask = str.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
...
Похож для необходимости SerialPortReader
, который должен реализовать SerialPortEventListener
public void serialEvent(SerialPortEvent event)
{
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[40];
try
{
while (inputStream.available() > 0)
{
int numBytes = inputStream.read(readBuffer);
}
System.out.print(new String(readBuffer));
System.out.println();
System.out.println("DTR: " + serialPort.isDTR());
System.out.println("DSR: " + serialPort.isDSR());
System.out.println("CTS: " + serialPort.isCTS());
System.out.println("RTS: " + serialPort.isRTS());
System.out.println();
outputStream.write("ACTIVESYNC".getBytes());
}
catch (IOException e)
{
e.printStackTrace();
}