java - 无法将图像推送到 Firebase 存储并在应用中显示
问题描述
请帮忙!我无法将照片推送到 Firebase 存储,因此无法在我的应用中显示。此代码参考了周末课程中的 Udacity Firebase。我想将所选照片推送到 Firebase 存储并显示在我的应用程序中。第一张图片显示聊天活动,第二张图片显示点击图片图标时图片库的意图,第三张图片显示无法将所选照片推送到 Firebase 存储并且也不显示在应用程序中的结果。我想将所选照片推送到 Firebase 存储并显示在聊天部分
将图像上传到 Firebase 存储的官方文档链接 -> https://firebase.google.com/docs/storage/android/upload-files?authuser=0
我尝试了官方文档代码,但它也不起作用
public class MainActivity extends AppCompatActivity {
private static final int RC_PHOTO_PICKER = 2;
private FirebaseStorage mFirebaseStorage;
private StorageReference mChatPhotosStorageReference;`
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mUsername = ANONYMOUS;
mFirebaseDatabase = FirebaseDatabase.getInstance();
mFirebaseAuth = FirebaseAuth.getInstance();
mFirebaseStorage = FirebaseStorage.getInstance();
mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("messages");
mChatPhotosStorageReference = mFirebaseStorage.getReference().child("photos");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
if (resultCode == RESULT_OK) {
// Sign-in succeeded, set up the UI
Toast.makeText(this, "Signed In!", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
// Sign in was canceled by the user, finish the activity
Toast.makeText(this, "Sign In Cancelled!", Toast.LENGTH_SHORT).show();
finish();
} else if (requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK) {
Uri selectedImageUri = data.getData();
// Get a reference to store file at chat_photos/<FILENAME>
StorageReference photoRef =
mChatPhotosStorageReference.child(selectedImageUri.getLastPathSegment());
// Upload file to Firebase Storage
photoRef.putFile(selectedImageUri);
mChatPhotosStorageReference.putFile(selectedImageUri).continueWithTask(task -> {
if (!task.isSuccessful()) {
throw task.getException();
}
return mChatPhotosStorageReference.getDownloadUrl();
}).addOnCompleteListener(task -> {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
FriendlyMessage friendlyMessage = new FriendlyMessage(null, mUsername,
downloadUri.toString());
mMessagesDatabaseReference.push().setValue(friendlyMessage);
}
});
}
}
}[Chat Activity[After Clicking Picture icon[No response][1]
解决方案
推荐阅读
- python-3.x - Python 3脚本如何在Windows 10开始菜单中添加最近添加的快捷方式?
- javascript - 使用快速 GET 请求从 Mapbox API 接收 2 个响应
- git - 在推送到 Codecommit 时需要特定的提交消息 AWS Lambda
- javascript - 如何创建一个可以改变背景颜色的按钮
- php - 如何以重新打开的形式保持价值?
- sql - Sybase 创建函数(练习)
- ios - UITextField defaultTextAttributes 错误?
- java - 如何在 JavaFX GUI 程序中显示非 ascii 字符?
- ansible - 在ansible中从直到循环打印自定义消息
- r - 根据两列分配唯一 ID