2016-05-25 9 views
4

jsonファイルをサーバーなしですべてのユーザーに共有したいと思います.Google Firebaseストレージサービス(ユーザー認証なし)を使用しています。 コード:認証なしでgoogle firebase storageを使用する

FirebaseStorage storage = FirebaseStorage.getInstance(); 
StorageReference storageRef = storage.getReferenceFromUrl("gs://xxxxxx.appspot.com/xxx-main.json"); 
Task<byte[]> task = storageRef.getBytes(1000000); 
while (!task.isComplete()) 
    StaticTools.sleep(100); 

byte[] b=task.getResult(); 

が、それは例外上げる:Googleのfirebaseストレージが認証されたユーザだけで動作するように見える

service firebase.storage { 
    match /b/XXXXXX.appspot.com/o { 
    match /{allPaths=**} { 
     allow read, write; 
    } 
    } 
} 

答えて

7

新しいFirebaseストレージコンソールをhttps://console.firebase.google.comで使用してください。フォルダ内を移動し、アップロードしたファイルを選択します。ファイルの場所タブの下に、という名前のフィールドがあります。ダウンロードURL。それをクリックすると、あなたのウェブサイトでこのファイルにホットリンクすることができます。

ルールタブに書かれている権限設定がない限り、これらのファイルを一般公開することができます。

1

com.google.android.gms.tasks.RuntimeExecutionException: com.google.firebase.storage.StorageException: User does not have permission to access this object. 

ストレージルールを。あなたのアプリがユーザー認証を必要としない場合は、匿名認証を設定できます。

3

ダウンロードURLのXavierの回答が有効です。

ルールでパブリックリードを許可する必要がありますが、ルールがシステム全体で更新されるまでに最大5分かかる場合があります。

+0

ダウンロードURLはどのくらい有効ですか? –

+0

これらは無効にされるまで有効です。これは、オブジェクトの更新によって、またはfirebase WebコンソールでURLを明示的に取り消すことで発生します。 –

関連する問題