2017-12-16 10 views
-3

Firebase存在しない場所にファイルをアップロードしようとすると-13000 StorageExceptionが発生します。ファイヤーベースのストレージにファイルをアップロード中にStorageExceptionが発生する

例:

root/abc/cba/pqr/test_file.txt 

しかしroot/test_file.txt and root/abc/test_file.txt both work fine

final File file = new File("local/file_path.txt"); 
StorageReference remoteLocation = FirebaseStorage.getInstance().getReference(); 
StorageReference currentFileRef = remoteLocation.child("abc/cba/pqr/test_file.txt"); 
StorageTask task = currentFileRef.putFile(Uri.fromFile(file)) 
      .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
        String log = "File " + file.getName() + " uploaded successfully !"; 
        uploadLog(log); 
       } 
      }).addOnFailureListener(new OnFailureListener() { 
       @Override 
       public void onFailure(@NonNull Exception exception) { 
        String log = "File " + file.getName() + " upload Error : "+exception.getClass().getSimpleName()+" " + exception.getCause()+" "+exception.getLocalizedMessage()+" " +exception.getMessage(); 
        if (exception instanceof StorageException){ 
         log+= " "+((StorageException)exception).getErrorCode(); 
         log+= " "+((StorageException)exception).getHttpResultCode(); 
        } 
        uploadLog(log); 
        Log.d(TAG,log); 
       } 
      }); 

私はグーグルのバージョンのサービスとすべての必要な権限をプレイを更新しました。

答えて

0

READ_EXTERNAL_STORAGEのマニフェストと実行時の両方のアプリケーションに対するアクセス許可が提供されているかどうかを確認してください。

Read Storageは危険なアクセス許可です。アプリのインストール時ではなく、アプリが実行されている間に、ユーザーはアプリの実行時に許可を与えます(アプリレベル23(APIレベル23))。通常の権限が直接ユーザーのプライバシーを危険にさらすしないでください

  • システム権限は、次の2つのカテゴリ、normal and dangerousに分かれています。あなたのアプリケーションがマニフェストに通常の権限をリストすると、システムはその権限を自動的に許可します。

  • 危険なアクセス許可によって、ユーザーの機密データにアクセスすることができます。あなたのアプリケーションがマニフェストに通常の権限をリストすると、システムはその権限を自動的に許可します。危険な権限をリストする場合、ユーザーは明示的にあなたのアプリに承認を与える必要があります。

Requesting Run Time Permissions in Android

それが問題であるかのかどうかをチェックします。設定に移動 - >アプリケーション - >あなたのアプリケーション - >権限 - >記憶許可を許可する*

  • これを行うには、マニフェストで読み取り記憶許可を持っている必要があります。..

ランタイムアクセス許可を追加するには。

  1. Requesting Run Time Permission
  2. Run time permission above Marshmallow
+0

私はこの許可READ_EXTERNAL_STORAGEを持っています。そして、root/file.txtとroot/abc/file.txtの形式のアップロードについてはうまくいきましたので、問題はfirebase側であると思います。 –

関連する問題