private void uploadImageToFirebase(Bitmap bitmap)
{
if(bitmap == null)
{
Log.e(TAG, "Cannot upload null bit map");
return;
}
if(!isAdded() || getActivity() == null || getActivity().isFinishing())
{
return; // Fragment is no longer attached
}
// Show a loading indicator
Toast.makeText(requireContext(), "Uploading image...", Toast.LENGTH_SHORT).show();
// Get the current user ID
FirebaseUser currentUser = auth.getCurrentUser();
if(currentUser == null)
{
Log.e(TAG, "No user is currently logged in");
Toast.makeText(requireContext(),
"You must be logged in to upload an image", Toast.LENGTH_SHORT).show();
return;
}
// Create a unique filename for the image
String filename = "restaurant_images/" + restaurantID + "/" + UUID.randomUUID().toString() + ".jpg";
StorageReference imageRef = storageRef.child(filename);
// Compress the image before uploading
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, baos);
byte[] imageData = baos.toByteArray();
// Start the upload
isUploading = true;
currentUploadTask = imageRef.putBytes(imageData);
currentUploadTask.addOnSuccessListener(taskSnapshot ->
{
isUploading = false;
currentUploadTask = null;
// Only proceed if fragment is still attached
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Image uploaded successfully, now get the download URL
imageRef.getDownloadUrl().addOnSuccessListener(downloadUri ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Got the download URL, now update the user's Firestore document
Log.d(TAG, "Called updateImageWithImageUrl with URL: " + downloadUri.toString());
updateImageWithImageUrl(downloadUri.toString(), new ManageMenuFragment.OnImageURLUpdateCompleteListener()
{
@Override
public void onImageURLImageUpdate(String imageURL)
{
saveRestaurantChanges(imageURL);
}
});
Log.d(TAG, "Upload successful, URL: " + downloadUri.toString());
}
}).addOnFailureListener(e ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Failed to get download URL", e);
Toast.makeText(requireContext(),
"Failed to get image URL: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}).addOnFailureListener(e ->
{
isUploading = false;
currentUploadTask = null;
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Image upload failed", e);
Toast.makeText(requireContext(),
"Upload failed: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}).addOnProgressListener(taskSnapshot ->
{
// Calculate and show upload progress if needed
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
Log.d(TAG, "Upload progress: " + progress + "%");
});
}
< /code>
Эта функция загружает изображение, но каталог в хранилище фактически не создается по какой -то причине. Я понятия не имею, почему, и у меня даже есть очень похожий, где он также не создается. Другие функции из того, что я проверил, на самом деле не актуальны, потому что они не делают ничего, что связано с хранением. < /P>
private void uploadImageToFirebase(Bitmap bitmap)
{
if(bitmap == null)
{
Log.e(TAG, "Cannot upload null bit map");
return;
}
if(!isAdded() || getActivity() == null || getActivity().isFinishing())
{
return; // Fragment is no longer attached
}
// Show a loading indicator
Toast.makeText(requireContext(), "Uploading image...", Toast.LENGTH_SHORT).show();
// Get the current user ID
FirebaseUser currentUser = auth.getCurrentUser();
if(currentUser == null)
{
Log.e(TAG, "No user is currently logged in");
Toast.makeText(requireContext(),
"You must be logged in to upload a profile picture", Toast.LENGTH_SHORT).show();
return;
}
String userId = currentUser.getUid();
// Create a unique filename for the image
String filename = "profile_images/" + userId + "/" + UUID.randomUUID().toString() + ".jpg";
StorageReference imageRef = storageRef.child(filename);
// Compress the image before uploading
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, baos);
byte[] imageData = baos.toByteArray();
// Start the upload
isUploading = true;
currentUploadTask = imageRef.putBytes(imageData);
currentUploadTask.addOnSuccessListener(taskSnapshot ->
{
isUploading = false;
currentUploadTask = null;
// Only proceed if fragment is still attached
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Image uploaded successfully, now get the download URL
imageRef.getDownloadUrl().addOnSuccessListener(downloadUri ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Got the download URL, now update the user's Firestore document
updateUserProfileWithImageUrl(downloadUri.toString());
Log.d(TAG, "Upload successful, URL: " + downloadUri.toString());
}
}).addOnFailureListener(e ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Failed to get download URL", e);
Toast.makeText(requireContext(),
"Failed to get image URL: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}).addOnFailureListener(e ->
{
isUploading = false;
currentUploadTask = null;
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Image upload failed", e);
Toast.makeText(requireContext(),
"Upload failed: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}).addOnProgressListener(taskSnapshot ->
{
// Calculate and show upload progress if needed
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
Log.d(TAG, "Upload progress: " + progress + "%");
});
}
< /code>
Здесь действительно создает каталог. Еще раз, никакой заметной разницы, когда я тестировал вещи с журналами, все сработало правильно, только что каталог в другом фрагменте не создавался, и из -за того, что все URL -адреса изображения приведут к 404S. Любая помощь ценится, я могу публиковать журналы, если это необходимо. До сих пор все было хорошо, и мне нужно исправить это как можно скорее, как и до субботы, чтобы на самом деле закончить в основном все мое приложение, и осталось много работы.
Подробнее здесь: https://stackoverflow.com/questions/795 ... -some-reas
Изображение загружается в Firebase, но каталог не создается по какой -то причине. Однако происходит только в 1 из 2 фраг ⇐ Android
Форум для тех, кто программирует под Android
1744675258
Anonymous
private void uploadImageToFirebase(Bitmap bitmap)
{
if(bitmap == null)
{
Log.e(TAG, "Cannot upload null bit map");
return;
}
if(!isAdded() || getActivity() == null || getActivity().isFinishing())
{
return; // Fragment is no longer attached
}
// Show a loading indicator
Toast.makeText(requireContext(), "Uploading image...", Toast.LENGTH_SHORT).show();
// Get the current user ID
FirebaseUser currentUser = auth.getCurrentUser();
if(currentUser == null)
{
Log.e(TAG, "No user is currently logged in");
Toast.makeText(requireContext(),
"You must be logged in to upload an image", Toast.LENGTH_SHORT).show();
return;
}
// Create a unique filename for the image
String filename = "restaurant_images/" + restaurantID + "/" + UUID.randomUUID().toString() + ".jpg";
StorageReference imageRef = storageRef.child(filename);
// Compress the image before uploading
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, baos);
byte[] imageData = baos.toByteArray();
// Start the upload
isUploading = true;
currentUploadTask = imageRef.putBytes(imageData);
currentUploadTask.addOnSuccessListener(taskSnapshot ->
{
isUploading = false;
currentUploadTask = null;
// Only proceed if fragment is still attached
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Image uploaded successfully, now get the download URL
imageRef.getDownloadUrl().addOnSuccessListener(downloadUri ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Got the download URL, now update the user's Firestore document
Log.d(TAG, "Called updateImageWithImageUrl with URL: " + downloadUri.toString());
updateImageWithImageUrl(downloadUri.toString(), new ManageMenuFragment.OnImageURLUpdateCompleteListener()
{
@Override
public void onImageURLImageUpdate(String imageURL)
{
saveRestaurantChanges(imageURL);
}
});
Log.d(TAG, "Upload successful, URL: " + downloadUri.toString());
}
}).addOnFailureListener(e ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Failed to get download URL", e);
Toast.makeText(requireContext(),
"Failed to get image URL: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}).addOnFailureListener(e ->
{
isUploading = false;
currentUploadTask = null;
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Image upload failed", e);
Toast.makeText(requireContext(),
"Upload failed: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}).addOnProgressListener(taskSnapshot ->
{
// Calculate and show upload progress if needed
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
Log.d(TAG, "Upload progress: " + progress + "%");
});
}
< /code>
Эта функция загружает изображение, но каталог в хранилище фактически не создается по какой -то причине. Я понятия не имею, почему, и у меня даже есть очень похожий, где он также не создается. Другие функции из того, что я проверил, на самом деле не актуальны, потому что они не делают ничего, что связано с хранением. < /P>
private void uploadImageToFirebase(Bitmap bitmap)
{
if(bitmap == null)
{
Log.e(TAG, "Cannot upload null bit map");
return;
}
if(!isAdded() || getActivity() == null || getActivity().isFinishing())
{
return; // Fragment is no longer attached
}
// Show a loading indicator
Toast.makeText(requireContext(), "Uploading image...", Toast.LENGTH_SHORT).show();
// Get the current user ID
FirebaseUser currentUser = auth.getCurrentUser();
if(currentUser == null)
{
Log.e(TAG, "No user is currently logged in");
Toast.makeText(requireContext(),
"You must be logged in to upload a profile picture", Toast.LENGTH_SHORT).show();
return;
}
String userId = currentUser.getUid();
// Create a unique filename for the image
String filename = "profile_images/" + userId + "/" + UUID.randomUUID().toString() + ".jpg";
StorageReference imageRef = storageRef.child(filename);
// Compress the image before uploading
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, baos);
byte[] imageData = baos.toByteArray();
// Start the upload
isUploading = true;
currentUploadTask = imageRef.putBytes(imageData);
currentUploadTask.addOnSuccessListener(taskSnapshot ->
{
isUploading = false;
currentUploadTask = null;
// Only proceed if fragment is still attached
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Image uploaded successfully, now get the download URL
imageRef.getDownloadUrl().addOnSuccessListener(downloadUri ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
// Got the download URL, now update the user's Firestore document
updateUserProfileWithImageUrl(downloadUri.toString());
Log.d(TAG, "Upload successful, URL: " + downloadUri.toString());
}
}).addOnFailureListener(e ->
{
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Failed to get download URL", e);
Toast.makeText(requireContext(),
"Failed to get image URL: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}).addOnFailureListener(e ->
{
isUploading = false;
currentUploadTask = null;
if(isAdded() && getActivity() != null && !getActivity().isFinishing())
{
Log.e(TAG, "Image upload failed", e);
Toast.makeText(requireContext(),
"Upload failed: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}).addOnProgressListener(taskSnapshot ->
{
// Calculate and show upload progress if needed
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
Log.d(TAG, "Upload progress: " + progress + "%");
});
}
< /code>
Здесь действительно создает каталог. Еще раз, никакой заметной разницы, когда я тестировал вещи с журналами, все сработало правильно, только что каталог в другом фрагменте не создавался, и из -за того, что все URL -адреса изображения приведут к 404S. Любая помощь ценится, я могу публиковать журналы, если это необходимо. До сих пор все было хорошо, и мне нужно исправить это как можно скорее, как и до субботы, чтобы на самом деле закончить в основном все мое приложение, и осталось много работы.
Подробнее здесь: [url]https://stackoverflow.com/questions/79574191/image-gets-uploaded-to-firebase-but-directory-doesnt-get-created-for-some-reas[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия