내 Android 앱을 사용하는 사람이 Firebase Storage에 비디오를 업로드 할 때 활동이 삭제 된 경우에도 비디오를 업로드하고 싶습니다. 내가 asynctask를 사용하여 시도했지만 작동하지 않는 것 같습니다. 다음은 AsyncTask를 코드입니다 : 내가 활동이 파괴 될 때 AsyncTask를 여전히 실행한다는 많은 것을 읽었습니다Android Firebase 보관 활동이 파괴되면 업로드하기
public class UploadAttachment extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
userRef.child("currentSeason").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
final String attachCurrentSeason = dataSnapshot.getValue().toString();
seasonRef.child("id").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String path = "users/" + mAuth.getUid() + "/" + attachCurrentSeason + "/game" + String.valueOf(Integer.parseInt(dataSnapshot.getValue().toString()) - 1);
StorageReference storageReference = storage.getReference(path);
storageReference.putBytes(byteArray);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return null;
}
}
,하지만 나를 위해 작동하지 않습니다. asynctask에서 firebase를 사용할 수 있습니까?
도움을 주시면 감사하겠습니다. 미리 감사드립니다!
귀하의 사이트에 (완료, 성공 또는 실패) 첨부 된 [모든 리스너] (https://developers.google.com/android/reference/com/google/android/gms/tasks/Task)가 없습니다. 'UploadTask'는'putBytes()'에 의해 반환됩니다. 업로드가 성공적으로 시작되었지만 완료되지 않았 음을 어떻게 알았습니까? –
@BobSnyder firebase 저장소가 동영상을 파일로 표시하지 않기 때문에 작동하지 않는다는 것을 알고 있습니다. – MrAppMachine
완료 및/또는 진행 수신기를 putBytes()에 추가하는 것이 좋습니다. 그러면 적어도 업로드 시작합니다. 보안 규칙 또는 기타 문제로 인해 즉시 실패 할 수 있습니다. –