Как мне это сделать? Ошибка: не удается найти символ метода getdownloadurl()
я пытаюсь загрузить изображение в firebase,
но у меня есть одна проблема
о
getDownloadUrl
ошибка: не удается найти символ метода getDownloadUrl()
Что я уже пробовал:
пакет com.пример.uploadimageswithtextfirebase;
импорт android.app.ProgressDialog;
импорт android.content.ContentResolver;
импорт android.content.Намерение;
импорт android.графики.Растровый;
импорт android.net-да.Ури;
импорт android.provider.Система хранения mediastore;
импорт android.os.Bundle;
импорт android.view.View;
импорт android.в WebKit.MimeTypeMap;
импорт android.widget.Кнопка;
импорт android.widget.EditText;
импорт android.widget.Графическое представление;
импорт android.widget.Тост;
импорт androidx.аннотации.Значение, отличное от null;
импорт androidx.совместимости приложений.приложение.AppCompatActivity;
импорт com.google.android.gms.tasks.OnFailureListener;
импорт com.google.android.gms.tasks.OnSuccessListener;
импорт com.google.огневая база.базы данных.DatabaseReference;
импорт com.google.огневая база.базы данных.FirebaseDatabase;
импорт com.google.огневая база, хранилище.FirebaseStorage;
импорт com.google.огневая база, хранилище.OnProgressListener;
импорт com.google.огневая база, хранилище.StorageReference;
импорт com.google.огневая база, хранилище.UploadTask;
импорт Java.Ио.Исключение IOException;
public class MainActivity расширяет AppCompatActivity {
// Путь к папке для хранилища Firebase.
Строка Storage_Path = "All_Image_Uploads/";
// Корневым имя базы данных на базе опорного пункта.
Строка Database_Path = "All_Image_Uploads_Database";
// Кнопка создания.
Кнопка ChooseButton, UploadButton;
// Создание EditText.
EditText ImageName ;
// Создания Книги.
Графическое Представление SelectImage;
// Создание URI.
FilePathUri Ури ;
// Создание объекта StorageReference и DatabaseReference.
StorageReference storageReference;
DatabaseReference databaseReference;
// Код запроса изображения для onActivityResult() .
int Image_Request_Code = 7;
ProgressDialog progressDialog ;
Логическое Значение CheckImageViewEditText;
@Ручная коррекция
protected void onCreate(Bundle savedInstanceState) {
супер.метод onCreate(savedInstanceState);
setContentView(R. layout.activity_main);
// Назначьте экземпляр FirebaseStorage для storageReference.
storageReference = FirebaseStorage.getInstance().getReference();
// Назначьте экземпляру FirebaseDatabase имя корневой базы данных.
databaseReference = FirebaseDatabase.getInstance().getReference(Database_Path);
//Присвоить идентификаторы кнопке.
ChooseButton = findViewById(R. id.ButtonChooseImage);
UploadButton = findViewById(R. id.ButtonUploadImage);
// Присвоить идентификаторы EditText.
ImageName = findViewById(R. id.ImageNameEditText);
// Назначьте идентификаторы для просмотра изображения.
SelectImage = findViewById(R. id.ShowImageView);
// Присвоение идентификатора ProgressDialog.
progressDialog = новый ProgressDialog(MainActivity.this);
// Добавление прослушивателя щелчков мыши для выбора кнопки изображения.
ChooseButton.setOnClickListener(новый вид.OnClickListener() {
@Ручная коррекция
общественного недействительными onclick(Посмотреть Посмотреть) {
// Создание намерения.
Намерение намерение = новое намерение();
// Установка типа намерения в качестве изображения для выбора изображения из памяти телефона.
intent.setType("изображение/*");
intent.setAction(намерение.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Пожалуйста, выберите изображение"), Image_Request_Code);
}
});
// Добавить кнопку слушателя, чтобы загрузить изображение кнопки.
UploadButton.setOnClickListener(новый вид.OnClickListener() {
@Ручная коррекция
общественного недействительными onclick(Посмотреть Посмотреть) {
// Вызов метода для загрузки выбранного изображения в хранилище Firebase.
UploadImageFileToFirebaseStorage();
}
});
}
@Ручная коррекция
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
если (requestCode == Image_Request_Code &амп;&амп; resultCode == RESULT_OK и усилитель; & сведения != нуль &амп;&амп; сведения.метода GetData() != нуль) {
FilePathUri = сведения.метода GetData();
пробовать {
// Получение выбранного изображения в растровое изображение.
Растровое изображение растровое изображение = система хранения mediastore.Изображения.Media.getBitmap(getContentResolver(), FilePathUri);
// Настройка растрового выбранного изображения в ImageView.
SelectImage.setImageBitmap(растровое изображение);
// После выбора изменения изображения нажмите кнопку над текстом.
ChooseButton.setText("изображение выбрано");
}
catch (IOException e) {
е.печатные();
}
}
}
// Метод создания для получения выбранного расширения файла изображения из URI пути к файлу.
публичная строка GetFileExtension(Uri uri) {
ContentResolver contentResolver = getContentResolver();
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
// Возврат расширения файла.
возврат mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri)) ;
}
// Создание метода UploadImageFileToFirebaseStorage для загрузки изображения в хранилище.
общественного недействительными UploadImageFileToFirebaseStorage() {
// Проверка того, является ли FilePathUri пустым или нет.
if (FilePathUri != null) {
// Настройка заголовка progressDialog.
progressDialog.setTitle("изображение загружается...");
// Отображение progressDialog.
progressDialog.показать();
// Создание второй ссылки на хранилище.
StorageReference storageReference2nd = storageReference.child(Storage_Path + System.currentTimeMillis() + "." + GetFileExtension(FilePathUri));
// Добавление addOnSuccessListener во второй StorageReference.
storageReference2nd.putFile(FilePathUri)
.addOnSuccessListener(новый OnSuccessListener<uploadtask.tasksnapshot>() {
@Ручная коррекция
общественного недействительными onsuccess процедуры(UploadTask.TaskSnapshot taskSnapshot) {
// Получение имени изображения из EditText и сохранение его в строковую переменную.
Строка TempImageName = ImageName.getText().toString().trim();
// Скрытие progressDialog после завершения загрузки.
progressDialog.уволить();
// Отображение тостового сообщения после завершения загрузки.
Toast.makeText(getApplicationContext(), "изображение загружено успешно ", тост.LENGTH_LONG).показать();
@SuppressWarnings("VisibleForTests")
ImageUploadInfo imageUploadInfo = new ImageUploadInfo(TempImageName, taskSnapshot.getDownloadUrl().toString());
// Получение идентификатора загрузки изображения.
Строка ImageUploadId = databaseReference.push().getKey();
// Добавление дочернего элемента image upload id s в databaseReference.
databaseReference.child(ImageUploadId).setValue(imageUploadInfo);
}
})
/- Если что-то пойдет не так .
.addOnFailureListener(новый OnFailureListener() {
@Ручная коррекция
onFailure общественного недействительными(@исключений исключений, не равных null ) {
// Скрытие progressDialog.
progressDialog.уволить();
// Отображение сообщения об ошибке исключения.
Тост.makeText(в MainActivity.в этом, исключение.метод GetMessage(), тост.LENGTH_LONG).показать();
}
})
// On progress изменение времени загрузки.
.addOnProgressListener(новый OnProgressListener<uploadtask.tasksnapshot>() {
@Ручная коррекция
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
// Настройка заголовка progressDialog.
progressDialog.setTitle("изображение загружается...");
}
});
}
еще {
Toast.makeText(MainActivity.this, "Пожалуйста, выберите изображение или добавьте имя изображения", Toast.LENGTH_LONG).показать();
}
}
}