2016-10-15 7 views
6
내가 파일을 업로드 할 수 중포 기지 스토리지를 사용하고,하지만 난 업로드 할 때이 오류

중포 기지 토큰 인증 오류

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를 참조하십시오.co.kr/help/mcve에 대한 자세한 정보는 –

답변

7

파일을 업로드하기 전에 서명하지 않았다고 생각합니다. 에서 onCreate() 실행 활동에서이 코드 ONSTART()에서 다음

FirebaseAuth mAuth = FirebaseAuth.getInstance(); 

,

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

에 있습니다 .Failure :-( –

+3

앱이이를 수행 할 수 있도록 Firebase 콘솔의 "인증 -> 로그인 방법"을 통해 익명의 로그인을 활성화해야합니다. – Gary99

1

다음 단계는 나를 위해 일했습니다.

  1. 이 패키지 ID

    build.gradle에서
  2. (응용 프로그램)

    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 종속성 아래에 추가 확인과 중포 기지에서 적절한 구글 - services.json을 생성 (프로젝트 루트

    dependencies { 
    
    classpath 'com.android.tools.build:gradle:2.2.3' 
    classpath 'com.google.gms:google-services:3.0.0' 
    
    } 
    
  4. 하는 활동에서 파일을 다운로드하는 코드에 다음을 추가하는 동안 폴더) :

    개인 StorageReference storageRef;

    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 adapter, thanks 덕분입니다. –

2

저도 같은 문제에 직면하고 그것은 단지 사용자의 인증 된 그에서 파일을 업로드 할 수 있기 때문에 기본 중포 기지에 의해 발생했다.

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

우리는 우리가 중포 기지 콘솔에서 저장 규칙을 변경하기로 결정 그래서 중포 기지를 사용하지 않고 우리 자신의 인증 프로세스를 가지고 : 저장 UTIL 예외 위

이 유사한 로그가있을 수 있습니다.

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

참고 : 변경 규칙은 사용자가 중포 기지 클라우드 서버에 파일을 업로드 할 수 있습니다.

0

모든 코드가 정확하고 firebase의 모든 사용자를 인증 한 경우 인터넷 연결처럼 간단 할 수 있습니다.

1

아마도 firebase에 "시작"할 수 없습니다. 프로젝트를 만들었으므로 Android Studio IDE에서 firebase 저장소에 연결해야하지만 콘솔에서 수동으로 시작해야합니다.