Время, дата, полное имя, profileImage и uid в postMap сохраняются в базе данных. Но постимейдж не хранится в базе огня. Пожалуйста, помогите решить эту проблему. Postimage не появляется, когда я запускаю эмулятор, тогда как остальные из них появляются
public class PostActivity extends AppCompatActivity {
private Toolbar mToolbar;
private ImageButton SelectPostImage;
private Button UpdatePostButton;
private EditText PostDescription;
private static final int Gallery_Pick =1;
private Uri ImageUri;
private StorageReference PostsImagesRefrence;
private DatabaseReference UsersRef, PostsRef;
private FirebaseAuth mAuth;
private String saveCurrentData, saveCurrentTime, postRandomName, current_user_id, downloadUrl;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post);
mAuth = FirebaseAuth.getInstance();
current_user_id = mAuth.getCurrentUser().getUid();
PostsImagesRefrence = FirebaseStorage.getInstance().getReference();
UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
PostsRef = FirebaseDatabase.getInstance().getReference().child("Posts");
SelectPostImage = (ImageButton) findViewById(R.id.imageButton3);
UpdatePostButton = (Button) findViewById(R.id.button3);
PostDescription = (EditText) findViewById(R.id.editText);
mToolbar = (Toolbar) findViewById(R.id.update_post_page_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Update Post");
SelectPostImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OpenGallery();
}
});
UpdatePostButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ValidatePostInfo();
}
});
}
private void ValidatePostInfo() {
String Description = PostDescription.getText().toString();
if(ImageUri==null)
{
Toast.makeText(this, "Please select post image", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(Description)){
Toast.makeText(this, "Please say something about your image",Toast.LENGTH_SHORT).show();
}
else{
StoringImageToFirebaseStorage();
}
}
private void StoringImageToFirebaseStorage() {
Calendar calFordData = Calendar.getInstance();
SimpleDateFormat currentDate = new SimpleDateFormat("dd-MMMM-yyyy");
saveCurrentData = currentDate.format(calFordData.getTime());
Calendar calFordTime = Calendar.getInstance();
SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm");
saveCurrentTime = currentTime.format(calFordData.getTime());
postRandomName = saveCurrentData + saveCurrentTime;
StorageReference filePath = PostsImagesRefrence.child("Post Images").child(ImageUri.getLastPathSegment()+ postRandomName + ".jpg");
filePath.putFile(ImageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful())
{
Task <Uri> downloadUrl = task.getResult().getMetadat().getReference().getDownloadUrl().toString();
Toast.makeText(PostActivity.this, "Image uploaded successfully to storage", Toast.LENGTH_SHORT).show();
SavingPostInformationToDatabase();
}
else{
String message = task.getException().getMessage();
Toast.makeText(PostActivity.this, "Error Occurred", Toast.LENGTH_SHORT).show();
}
}
});
}
private void SavingPostInformationToDatabase() {
UsersRef.child(current_user_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
String userFullName = dataSnapshot.child("fullname").getValue().toString();
String userProfileImage = dataSnapshot.child("profileimage").getValue().toString();
HashMap postsMap = new HashMap();
postsMap.put("uid", current_user_id);
postsMap.put("date", saveCurrentData);
postsMap.put("time", saveCurrentTime);
postsMap.put("description", PostDescription);
postsMap.put("postimage", downloadUrl);
postsMap.put("profileimage", userProfileImage);
postsMap.put("fullname", userFullName);
PostsRef.child(postRandomName).updateChildren(postsMap)
.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()){
SendUserToHomeActivity();
Toast.makeText(PostActivity.this, "Post is updated successfully", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(PostActivity.this, "Error Occurred", Toast.LENGTH_SHORT).show();
}
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void OpenGallery() {
Intent galleryIntent = new Intent();
galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("image/*");
startActivityForResult(galleryIntent, Gallery_Pick);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==Gallery_Pick && resultCode==RESULT_OK && data!=null){
ImageUri = data.getData();
SelectPostImage.setImageURI(ImageUri);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
int id = item.getItemId();
if(id==android.R.id.home){
SendUserToHomeActivity();
}
return super.onOptionsItemSelected(item);
}
private void SendUserToHomeActivity(){
Intent homeIntent = new Intent(PostActivity.this, HomeActivity.class);
startActivity(homeIntent);
}
}