База данных Firebase в реальном времени не отображает элементы, отображаемые на - PullRequest
0 голосов
/ 05 июля 2019

Я новичок в кодировании Android, и у меня проблема с отображением элементов в RT-базе данных. Элементы не отображаются, а только изображение загружается в хранилище

, следуя инструкциям, которые я сделал.сначала этот код я использовал .getDownloadUrl(), потом понял, что он устарел, поэтому я попробовал это решение, и это всегда та же проблема, что элементы не отображаются в RT-базе данных, а только изображение загружается в хранилище

это код:

public class AddProductActivity extends AppCompatActivity {

    private  static  final int PICK_IMAGE_REQUEST =1;
    private Button ChooseImage;
    private Button AddProductButton;
    private Button To_the_list;
    private EditText name;
    private ImageView item_image;
    private ProgressBar mProgressBar;

    private Uri mImageUri;

    private StorageReference mStorageRef;
    private DatabaseReference mDatabaseRef;

    private StorageTask mProductTask;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_product);

        ChooseImage = findViewById(R.id.choose_img);
        AddProductButton= findViewById(R.id.add_new_product);
        To_the_list = findViewById(R.id.to_list);
        name=findViewById(R.id.product_name);
        item_image=findViewById(R.id.product_image);
        mProgressBar= findViewById(R.id.progress_bar2);

        mStorageRef= FirebaseStorage.getInstance().getReference("Products");
        mDatabaseRef= FirebaseDatabase.getInstance().getReference("Products");

        ChooseImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openFileChooser();
            }
        });

        AddProductButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ProductFile();
            }
        });

        To_the_list.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });
    }

    private void openFileChooser(){
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent,PICK_IMAGE_REQUEST);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == PICK_IMAGE_REQUEST && resultCode==RESULT_OK && data != null && data.getData() != null)
        {
            mImageUri = data.getData();

            Picasso.with(this).load(mImageUri).into(item_image);
        }
    }
    private String getFileExtension(Uri uri){
        ContentResolver cR = getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }
    private void ProductFile() {

        if (mImageUri != null) {
            final StorageReference fileReference = mStorageRef.child(System.currentTimeMillis() + "." + getFileExtension(mImageUri));
            mProductTask = fileReference.putFile(mImageUri);
            mProductTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                @Override
                public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                    if (!task.isSuccessful()) {
                        throw task.getException();
                    }
                    return fileReference.getDownloadUrl();
                }
            }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                @Override
                public void onComplete(@NonNull Task<Uri> task) {
                    if (task.isSuccessful()) {

                        Handler handler = new Handler();
                        handler.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                mProgressBar.setProgress(0);
                            }
                        }, 500);

                        String downloadUri = task.getResult().toString();
                        Product submit = new Product(
                                name.getText().toString().trim(),
                                downloadUri);

                        String uploadId = mDatabaseRef.push().getKey();
                        mDatabaseRef.child(uploadId).setValue(submit);

                    } else {
                        Log.e("Upload","Upload failed");
                    }
                }
            })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {

                            Toast.makeText(AddProductActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();

                        }
                    });

        } else {

            Toast.makeText(this, "Other details not Provided", Toast.LENGTH_SHORT).show();
        }

    }

Нет ошибки, но изображение отображается в хранилище, но ничего в базе данных реального времени

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...