2016-05-25 3 views
4

Я хочу поделиться с json-файлом всем пользователем без сервера, и я использую службу хранения Google Firebase (без аутентификации пользователя). Код:с использованием хранилища Google Firebase без аутентификации

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(); 

но это возбудит исключение:

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

хранения Правило:

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

ответ

7

Используйте новую консоль хранения Firebase по адресу https://console.firebase.google.com. Перейдите по своим папкам и выберите загруженный файл. На вкладке «Местоположение файла» есть это поле: URL-адрес загрузки. Нажмите на нее, чтобы скопировать, и вы сможете ссылаться на этот файл на своем сайте.

До тех пор, пока на вкладке правил отсутствуют настройки разрешений, вы должны публично использовать эти файлы.

1

это выглядит как Google firebase хранения работает только с проверкой подлинности пользователя. Вы можете настроить анонимную аутентификацию, если ваше приложение не требует аутентификации пользователя.

3

Ответ Ксавьера с URL-адресами загрузки будет работать.

Ваши правила должны разрешать публичное чтение, но ваши правила могут обновляться в течение 5 минут.

+0

Как долго загружаются ссылки? –

+0

они действительны до тех пор, пока не будут отменены, что может произойти посредством обновления объекта или явно путем аннулирования URL-адреса в веб-консоли firebase. –