这段代码有一个错误:
String download_url=task.getResult.getStorage.getDownloadUrl.toString);当我运行程序时,我从图片库中选择一张图片并将其发布,并收到一条消息:
未对
用户进行身份验证,请使用Firebase身份验证进行身份验证,然后重试
final StorageReference newPhoto=mPhotosStrorage.child(imageUri.getLastPathSegment());
newPhoto.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful())
{
final String myKey=mPhotosDatabase.push().getKey();
//this error String download_url=task.getResult().getDownloadUrl().toString();
String datem=getDateTime();
DatabaseReference newDatabase=mPhotosDatabase.child(myKey);
newDatabase.child("postid").setValue(myKey);
newDatabase.child("postedby").setValue(userId);
newDatabase.child("postedon").setValue(datem);
newDatabase.child("postdetails").setValue(post);
newDatabase.child("postlikes");
newDatabase.child("postviews");
newDatabase.child("postcomments");
newDatabase.child("postimage").setValue(download_url).addOnCompleteListener(new OnCompleteListener<Void>() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful())
{
pb.setVisibility(View.GONE);
Pair[] pairs=new Pair[1];
pairs[0]=new Pair<View,String>(homeLayout,"etTransition");
ActivityOptions options=ActivityOptions.makeSceneTransitionAnimation(PostActivity.this,pairs);
startActivity(new Intent(PostActivity.this,HomeActivity.class),options.toBundle());
}
}
});
}else {
Toast.makeText(PostActivity.this, "Error:"+task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});请帮我解决这个问题,帮我重写代码。
发布于 2021-09-29 11:42:44
根据您最后的评论,问题出现在以下代码行:
String download_url=task.getResult().getDownloadUrl().toString();请注意,这不是你现在如何获得下载URL。将该Task对象转换为String完全没有帮助。要解决这个问题,请使用以下代码行:
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
String url = uri.toString();
//Do what you need to do with the URL
}
});此外,始终确保对用户进行身份验证,因为只有当用户未经身份验证并且规则被设置为拒绝操作时,才会发生该错误。
https://stackoverflow.com/questions/69375167
复制相似问题