2017-04-24 92 views
0

嘗試從FirebaseStorage獲取公共downloadUrl時出現以下錯誤。我已經將我的規則設置爲允許完全讀取和寫入訪問,並且將我的數據存儲在存儲中沒有問題。但是,當我嘗試獲取下載網址時,我遇到了這個問題。 -獲取令牌的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 ,但仍無法解決我的問題。

這裏是我的功能 -

@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

什麼規則是什麼樣子?該錯誤表示您需要先登錄。 – Kato

+0

我仍然收到錯誤信息,但我並沒有說它不會影響我需要做的事情。所以,我實際上得到了downloadUrl(),即使我在Android監視器中遇到了錯誤,所以看起來我甚至不需要修復它。 – Kek

回答

0

請加Activity類

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方法這是不夠的,解決您的問題裏面以下幾行代碼。現在添加上面的代碼後。

打開Firebase Console>點擊從左側菜單>登錄方法驗證>啓用匿名 現在構建並運行應用程序,如果沒有作品讓我知道

相關問題