Firebase Storage: отказано в получении 400 для публичного хранилища - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь использовать хранилище Firebase из приложения Android. В начале все работало нормально. Сейчас я получаю ответ:

 {  
     "error": {
        "code": 400,
        "message": "Permission denied. Could not access bucket adiglehard.appspot.com. Please enable Firebase Storage for your bucket by visiting the Storage tab in the Firebase Console and ensure that you have sufficient permission to properly provision resources."  
      }
  }

Код загрузки:

storage = FirebaseStorage.getInstance("gs://adiglehard.appspot.com/");
Uri file = Uri.fromFile(new File(mFile.getAbsolutePath()));
StorageReference storageRef = storage.getReference();
StorageReference riversRef = storageRef.child("images/" + file.getLastPathSegment());
uploadTask = riversRef.putFile(file);

// Register observers to listen for when the download is done or if it fails
uploadTask.addOnFailureListener(new OnFailureListener() {
  @Override
  public void onFailure(@NonNull Exception exception) {
      // Handle unsuccessful uploads
      showToast("error!!!!");
      exception.printStackTrace();

  }
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  @Override
  public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
      showToast("success!!!!");
  }
});

Правила Firestore:

// Anyone can read or write to the bucket, even non-users of your app.
// Because it is shared with Google App Engine, this will also make
// files uploaded via GAE public.
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}

1 Ответ

0 голосов
/ 16 мая 2018

Я думаю, это связано с отсутствующим разрешением в облачной консоли Google.Вам необходимо проверить, есть ли у вас firebase-storage@system.gserviceaccount.com в качестве администратора хранилища.Если у вас его нет, то добавьте его.Это исправило проблему в моем случае.

PS: Существуют различные отчеты о проблеме с разрешениями в Firebase Storage.Учетная запись службы Firebase Storage по ошибке удаляется из корзины, что приводит к тому, что запросы в последнее время дают ошибки. Вот ссылка.

Шаги:

  • Перейдите на Консоль Google Cloud.
  • Перейдите в хранилище.
  • Выберите контейнер, затем нажмите кнопку Показать информационную панель.

Добавьте отсутствующее разрешение.Вы также можете добавить отсутствующее разрешение в IAM & Admin, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...