【发布时间】:2020-11-06 09:34:36
【问题描述】:
当从 ImagePicker 中选择特定图像时,它会成功上传到 Firebase 存储,但在 UI 中不可见。
MessageAdapter.java:
public class MessageAdapter extends ArrayAdapter<FriendlyMessage> {
public MessageAdapter(Context context, int resource, List<FriendlyMessage> objects) {
super(context, resource, objects);
}
@Override
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);
assert message != null;
boolean isPhoto = message.getPhotoUrl() != null;
if (isPhoto) {
messageTextView.setVisibility(View.GONE);
photoImageView.setVisibility(View.VISIBLE);
Glide.with(photoImageView.getContext())
.load(message.getPhotoUrl())
.into(photoImageView);
} else {
messageTextView.setVisibility(View.VISIBLE);
photoImageView.setVisibility(View.GONE);
messageTextView.setText(message.getText());
}
authorTextView.setText(message.getName());
return convertView;
}
}
有人知道如何解决这个问题吗?
【问题讨论】:
-
我觉得首先要确认图片上传成功。检查 Firebase 存储以确认这一点。然后确认图片上传成功后生成的URL是否保存在message对象上。如果上述情况属实,则尝试将其打印到控制台,然后确认 getPhotoUrl() 不为空。如果它不为空,请确保您的上传过程生成了一个令牌并将其附加到照片 url (&token=a986e967-8e65-487d-a7ef-8476dbf7a11d) 以便可以公开访问。分享您上传照片代码也会很有帮助。
-
load(message.getPhotoUrl())。我们怎么知道你有什么样的 url? -
进一步你没有告诉 if 块或 else 块是否被执行。我们怎么知道?
-
message.getPhotoUrl()返回什么? -
message.getPhotoUrl() 返回 'com.google.android.gms.tasks.zzu@945da74' 图像也会上传到 firebase 存储。
标签: android firebase google-cloud-platform firebase-storage