【发布时间】:2020-05-10 18:24:44
【问题描述】:
所以,我正在开发可以加载存储在 Firebase 云中的图像的小型聊天应用程序。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
// Code for text message
}
else if(requestCode==RC_PHOTO_PICKER && resultCode==RESULT_OK){
Uri selectedImageUri=data.getData();
StorageReference photoRef=mChatPhotoReference.child(selectedImageUri.getLastPathSegment());
photoRef.putFile(selectedImageUri).addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
String downloadUrl=taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
FriendlyMessage friendlyMessage=new FriendlyMessage(null,mUsername,downloadUrl);
mDatabaseReference.push().setValue(friendlyMessage);
Log.e("WWWWWWWWWWWWWWWWWWWWWWW",downloadUrl);
}
});
}
}
这里是获取视图。
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.item_message, parent, false);
}
ImageView photoImageView = (ImageView) convertView.findViewById(R.id.photoImageView);
TextView messageTextView = (TextView) convertView.findViewById(R.id.messageTextView);
TextView authorTextView = (TextView) convertView.findViewById(R.id.nameTextView);
FriendlyMessage message = getItem(position);
//FriendlyMessage是存储文本、用户名和图片url的类
boolean isPhoto = message.getPhotoUrl() != null;
if (isPhoto) {
Log.e("VVVVVVVVVVVVVVVVVVVV",message.getPhotoUrl());
messageTextView.setVisibility(View.GONE);
photoImageView.setVisibility(View.VISIBLE);
Glide.with(photoImageView.getContext())
.load(message.getPhotoUrl())
.into(photoImageView);
} else {
Load text..
}
authorTextView.setText(message.getName());
return convertView;
}
我正在使用
glidle : 4.11.0
firebase-storage:19.1.0
【问题讨论】:
-
请检查您是否在内部收到
message.getPhotoUrl()值 -
@Ashish 是的,我找到了它并得到了正确的值。
-
@AmanSharma 尝试在浏览器中打开它
-
@AmanSharma 这就是 glide 无法访问的原因。你需要这样的网址
https://firebasestorage.googleapis.com/v0/b/xxxxApp.appspot.com/o/logo.png?alt=media&token=c0472xxxxxxxxx88c44。它需要Token。
标签: android firebase firebase-storage android-glide