我正在尝试一起下载图像和文本,以在RecyclerView中显示。目前,我只能显示文本。我的图像可以正确上传到Firebase Storage,但是在我的Firestore中,我得到的字符串看起来像这样:
我认为此图像URL应该是一个实际的链接,例如Firebase存储中的链接。我不确定为什么要在ImageURl字段中获得此字符串。
这意味着当我尝试使用毕加索显示图像时,由于此链接不正确,我什么也没得到。
我的问题是如何解决此链接,以便在将信息上传到Firebase时,我在Firestore中获得一个实际的链接。
这是上传图片网址和字符串的方法
private void saveBook() {
final String chapterName = editTextChapterName.getText().toString();
final String chapterInfo = editTextChapterInfo.getText().toString();
final int chapterNumber = numberPickerChapterNumber.getValue();
if (chapterName.trim().isEmpty() || chapterInfo.trim().isEmpty()) { //ensure that user has not left boxes empty
Toast.makeText(this, "Please add a chapter name and the chapter information", Toast.LENGTH_SHORT).show();
return;
}
if (mImageUri != null) {
final StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()
+ "." + getFileExtension(mImageUri));
mUploadTask = fileReference.putFile(mImageUri)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(NewBookActivity.this, "Upload successful", Toast.LENGTH_LONG).show();
CollectionReference bookRef = FirebaseFirestore.getInstance().collection("Book");
bookRef.add(new Book(chapterName, chapterInfo, chapterNumber, fileReference.toString()));
finish();
}
});
这告诉适配器我们要在布局的每个卡中放置什么
@Override
protected void onBindViewHolder(@NonNull BookHolder holder, int position, @NonNull Book model) {
holder.textViewChapterName.setText(model.getChapterName());
holder.textViewChapterInfo.setText(model.getChapterInfo());
Picasso.get()
.load(model.getImageUrl())
.fit()
.into(holder.imageViewDisplay);
holder.textViewChapterNumber.setText(String.valueOf(model.getChapterNumber()));
}
我相信问题在于方法saveBook()
此方法用于上传图片和几个字符串。
我试图将saveBook方法更改为
bookRef.add(new Book(chapterName, chapterInfo, chapterNumber, fileReference.getDownloadUrl().toString()));
来自
bookRef.add(new Book(chapterName, chapterInfo, chapterNumber, mUploadTask.toString()));
imageUrl现在看起来像这样:
有人可以告诉我如何获取Firestore中存储中的图像显示的正确URL吗?
谢谢