2017-04-24 2 views
0

FirebaseStorage에서 공개 downloadUrl을 가져 오려고 할 때 다음 오류가 발생합니다. 전체 읽기 및 쓰기 액세스가 가능하도록 내 규칙을 설정했으며 스토리지에 데이터를 저장하는 데 문제가 없습니다. 그러나 다운로드 URL을 얻으려고하면이 문제가 발생합니다. -토큰 가져 오기 FirebaseStorage 오류

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

나는 Firebase getDownloadURL 을 읽을 수는 있지만 여전히 내 문제를 해결 할 수 없습니다했습니다.

다음은이 문제를 해결하는 것만으로는 충분하지 않습니다 활동 클래스

mAuth = FirebaseAuth.getInstance(); 
    FirebaseUser user = mAuth.getCurrentUser(); 
    if (user != null) { 

     /* perform your actions here*/ 


    } else { 
     signInAsAnonymous(); 
    } 

private void signInAnonymously() { 
    mAuth.signInAnonymously().addOnSuccessListener(this, new OnSuccessListener<AuthResult>() { 
     @Override 
     public void onSuccess(AuthResult authResult) { 
         /* perform your actions here*/ 

     } 
    }) 
      .addOnFailureListener(this, new OnFailureListener() { 
       @Override 
       public void onFailure(@NonNull Exception exception) { 
        Log.e("MainActivity", "signFailed****** ", exception); 
       } 
      }); 
} 

의에서 onCreate 메서드 내 코드의 다음 줄을 추가하십시오 내 기능 -

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     if(requestCode == 0 && resultCode == RESULT_OK) { 

      Uri uri = data.getData(); 
      final StorageReference filePath = mStorage.child("Photos").child(uri.getLastPathSegment()); 

      filePath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 

       @Override 
       public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 

//     @SuppressWarnings("VisibleForTests") Uri downloadUri = taskSnapshot.getDownloadUrl(); 
//     recognizeImage(downloadUri); 

        filePath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
         @Override 
         public void onSuccess(Uri uri) { 
          recognizeImage(uri); 
         } 
        }); 
       } 

      }); 
     } 
    } 
+0

를 알려하지 않는 경우

열기 Firebase Console> 왼쪽 메뉴> SIGN-IN 방법에서 인증을 클릭> 구축 이제 ANONYMOUS 을 활성화하고 응용 프로그램을 실행? 오류는 먼저 로그인해야한다고 말합니다. – Kato

+0

나는 여전히 오류가 발생하고 있지만, 내가해야 할 일에 영향을 미치지는 않았다. 그래서, 나는 실제로 안드로이드 모니터에서 얻는 에러로도 downloadUrl()을 얻고 있습니다. 그래서 그것을 고칠 필요조차없는 것처럼 보입니다. – Kek

답변

0

입니다. 이제 위의 코드를 추가합니다. 작품은 나 규칙이 무엇처럼 보이나요