2016-10-15 3 views
6

Я использую firebase хранения для загрузки файлов, но когда я загружаю я получаю эту ошибкуFirebase Токен Ошибка аутентификации

E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.android.gms.internal.zzand: Please sign in before trying to get a token. 

Я гугле его, но не мог получить ответ на него! Я подписал, в firebase.

+0

Можете ли вы разместить дополнительный код, чтобы мы могли взглянуть на то, что вы на самом деле делаете, и в идеале его воспроизвести? См. Http: // stackoverflow.com/help/mcve для получения дополнительной информации об этом :) –

ответ

7

Я думаю, что вы не подписались перед загрузкой файлов. В OnCreate() из пусковой деятельности, попробуйте этот код

FirebaseAuth mAuth = FirebaseAuth.getInstance(); 

Тогда в OnStart(),

FirebaseUser user = mAuth.getCurrentUser(); 
if (user != null) { 
    // do your stuff 
} else { 
    signInAnonymously(); 
} 

signInAnonymously()

private void signInAnonymously() { 
    mAuth.signInAnonymously().addOnSuccessListener(this, new OnSuccessListener<AuthResult>() { 
      @Override 
      public void onSuccess(AuthResult authResult) { 
       // do your stuff 
      } 
     }) 
     .addOnFailureListener(this, new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       Log.e(TAG, "signInAnonymously:FAILURE", exception); 
      } 
     }); 
} 

Это может решить вашу проблему

+0

всегда приходит в onFailure :-( –

+3

Вам нужно включить анонимный вход через «Authentication-> SIGN-IN METHOD» в консоли Firebase для вашего приложения, чтобы сделать это. – Gary99

1

Ниже были шаги для меня:

  1. Сформирован надлежащего Google-services.json из firebase с пакетом ID

  2. В build.gradle (приложение)

    dependencies { 
    
    compile 'com.google.firebase:firebase-storage:10.2.0' 
    compile 'com.google.firebase:firebase-auth:10.2.0' 
    compile 'com.google.firebase:firebase-core:10.2.0' 
    compile 'com.google.firebase:firebase-database:10.2.0' 
    compile 'com.firebase:firebase-client-android:2.4.0' 
    } 
    
  3. Убедитесь, что вы добавить ниже зависимостей в build.gradle (корень проекта папка)

    dependencies { 
    
    classpath 'com.android.tools.build:gradle:2.2.3' 
    classpath 'com.google.gms:google-services:3.0.0' 
    
    } 
    
  4. При загрузке файла в вашей деятельности добавить следующий код:

    частный склад хранения данныхRef;

    private void downloadImageFromFireBase() 
    { 
    showProgressDialog("Downloading image.."); 
    
    storageRef = storage.getReferenceFromUrl("gs://XXX.appspot.com/").child("av"+ datePassed +".jpg"); 
    showImageFromFireBaseDataBase(); 
    } 
    
    private void showImageFromFireBaseDataBase() 
    { 
        try { 
         final File localFile = File.createTempFile("images", "jpg"); 
         final Bitmap[] bitmap = new Bitmap[1]; 
          storageRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 
           @Override 
           public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 
            Log.e("Test", "success!"); 
            bitmap[0] = BitmapFactory.decodeFile(localFile.getAbsolutePath()); 
            raysImage.setImageBitmap(bitmap[0]); 
           } 
          }).addOnFailureListener(new OnFailureListener() { 
           @Override 
           public void onFailure(@NonNull Exception exception) { 
            Log.e("Test", "fail :(" + exception.getMessage()); 
           } 
          }); 
         }catch(IOException e){ 
         Log.e("ImageView",e.toString()); 
         } 
        } 
    
+0

Ответ, предоставленный здесь, помог мне в адаптере Recycle view, спасибо –

2

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

Над исключением UTIL хранения там может быть лог похож на это:

E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.android.gms.internal.zzajb: Please sign in before trying to get a token. 

У нас был наш собственный процесс аутентификации без использования firebase поэтому мы решили изменить правила хранения в firebase консоли.

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

Примечание: Изменение правил позволит любому пользователю загружать файлы на сервер firebase облака.

0

Это может быть что-то простое, как подключение к Интернету, то есть, если весь ваш код правильный, и вы прошли проверку подлинности всех пользователей на firebase.

1

Возможно, вы просто не можете «начать» с базы огня. Я говорю, что, поскольку я создал проект, подключитесь к хранилищу firebase с помощью Android Studio IDE, но я должен «начать» вручную на консоли.

Смежные вопросы