как получить URL для загрузки после вставки изображения в firebase.storage

#xamarin.android #firebase-storage

#xamarin.android #firebase-хранилище

Вопрос:

Я могу вставить изображение в firebase.storage, но ссылка для скачивания, которую я получаю, не совпадает с ссылкой для скачивания, прикрепленной к изображению при его загрузке.

 public void UploadImage()
{
    if (filePath != null)
        progressBar.Visibility = ViewStates.Visible;
    var images = storageRef.Child("profilePicture");
    images.PutFile(filePath);    
}

void IOnSuccessListener.OnSuccess(Java.Lang.Object result)
{
    var snapShot = (UploadTask.TaskSnapshot)resu<
    var downloadURL = snapShot.DownloadUrl.Scheme
          ":"   snapShot.DownloadUrl.SchemeSpecificPart;
}

UserData newUser = new UserData();
newUser.UserId = UserId;
newUser.Email = UserEmail;
newUser.FirstName = first.Text;
newUser.LastName = last.Text;
newUser.MobileNumber = phone.Text;
newUser.Userprofile = storageRef.DownloadUrl;
  

Комментарии:

1. После загрузки изображения вам необходимо вызвать метод storageRef.getDownloadUrl() для загрузки URL-адреса изображения. У меня есть код на родном Android и IOS, но не на xamarin, если вы скажете, я могу поделиться им с вами.

2. хорошо, вы можете поделиться им

Ответ №1:

Я могу поделиться собственным кодом Android и IOS, чтобы получить URL-адрес из загруженного Firebase изображения / файла, возможно, вы могли бы получить некоторую помощь от этого для Xamarin.

Android:

 Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
    @Override
    public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
        if (!task.isSuccessful()) {
            throw task.getException();
        }

        // Continue with the task to get the download URL
        return fileRef.getDownloadUrl();
    }
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
    @Override
    public void onComplete(@NonNull Task<Uri> task) {
        if (task.isSuccessful()) {
            Uri downloadUri = task.getResult();
            String stringUrl = downloadUri.toString(); // Image url


        } else {
            // Handle failures
            Log.e("oops","problem occurred");
        }
    }
});
  

iOS:

 fileRef.downloadURL { (url, error) in
  guard let downloadURL = url else {
      // Uh-oh, an error occurred!
      print("Uh-oh, an error occurred! in url downloading")

      return
  }
  print("downloadurl: (downloadURL.absoluteString)");

}
  

Комментарии:

1. Это фрагмент кода для получения только URL-адреса загруженного файла, но если вам нужно, я могу поделиться полными функциями для загрузки изображения, а затем получить URL-адрес изображения.

2. У меня нет ошибок в коде, но он все еще не работает