2017-04-24 88 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>点击从左侧菜单>登录方法验证>启用匿名 现在构建并运行应用程序,如果没有作品让我知道

相关问题