Пользовательские данные не сохраняются в Firebase без изображения - PullRequest
0 голосов
/ 15 апреля 2020

Ниже приведен код для загрузки сообщения (с изображением или без него), когда я пытаюсь загрузить сообщение без изображения. Он не сохраняет никаких пользовательских данных (uid, uname, propi c), которые я получаю с помощью getUserData. ().

Я также пытался вызвать getUserdata без кода изображения, но он не сохраняется.

Я написал это для распознавания изображения с изображением или без изображения

            if(image_uri==null){
                uploadData(email, desc, "noImage");
            }else{
                //Post with image
                uploadData(email, desc, String.valueOf(image_uri));
            }

Код как следует для загрузки сообщения:

        uploadProgress.setVisibility(View.VISIBLE);

        //getUserData
        getUserData();
        //For post
        final String timestamp=String.valueOf(System.currentTimeMillis());
        String filePathAndName="Posts/"+"post_"+ timestamp;

        if (!uri.equals("noImage")) {
            //get image from imageview
            Bitmap bitmap = ((BitmapDrawable) imgV.getDrawable()).getBitmap();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            //image compress
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
            data = baos.toByteArray();


            //POST WITH IMAGE
            StorageReference ref = FirebaseStorage.getInstance().getReference().child(filePathAndName);
            ref.putBytes(data)
                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                            //Success to firebase storage
                            Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
                            while (!uriTask.isSuccessful());
                            downloadUri = uriTask.getResult().toString();

                            if (uriTask.isSuccessful()) {
                                //url is received upload post to firebase db

                                HashMap<Object, String> hashMap = new HashMap<>();
                                //post info
                                hashMap.put("uid", uid);
                                hashMap.put("uname", name);
                                hashMap.put("pid", timestamp);
                                hashMap.put("pdesc", desc);
                                hashMap.put("pimage", downloadUri);
                                hashMap.put("ptime", dateTime);
                                hashMap.put("propic", propic);

                                //Path to store data
                                DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Posts");
                                //feeding data to ref
                                ref.child(timestamp).setValue(hashMap)
                                        .addOnSuccessListener(new OnSuccessListener<Void>() {
                                            @Override
                                            public void onSuccess(Void aVoid) {
                                                uploadProgress.setVisibility(View.GONE);
                                                Toast.makeText(Add_post.this, "Post saved :)", Toast.LENGTH_SHORT).show();
                                                //resetting fields
                                                caption.setText("");
                                                imgV.setImageAlpha(R.drawable.image_up_icon);
                                                image_uri = null;
                                            }
                                        })
                                        .addOnFailureListener(new OnFailureListener() {
                                            @Override
                                            public void onFailure(@NonNull Exception e) {
                                                uploadProgress.setVisibility(View.GONE);
                                                Toast.makeText(Add_post.this, "Post saving failed :(", Toast.LENGTH_SHORT).show();
                                                //resetting fields
                                                caption.setText("");
                                                imgV.setImageAlpha(R.drawable.image_up_icon);
                                                image_uri=null;
                                            }
                                        });
                            }

                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Toast.makeText(Add_post.this, "Failed Uploading image", Toast.LENGTH_SHORT).show();
                        }
                    });

        }
        else{
            getUserData();
            //post without image
            HashMap<Object, String> hashMap= new HashMap<>();
            //post info
            hashMap.put("uid", uid);
            hashMap.put("uname", name);
            hashMap.put("pid", timestamp);
            hashMap.put("pdesc", desc);
            hashMap.put("pimage", "noImage");
            hashMap.put("ptime", dateTime);
            hashMap.put("propic", propic);

            //Path to store data
            DatabaseReference ref=FirebaseDatabase.getInstance().getReference("Posts");
            //feeding data to ref
            ref.child(timestamp).setValue(hashMap)
                    .addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            uploadProgress.setVisibility(View.GONE);
                            Toast.makeText(Add_post.this, "Post saved :)", Toast.LENGTH_SHORT).show();
                            //resetting fields
                            caption.setText("");
                            imgV.setImageAlpha(R.drawable.image_up_icon);
                            image_uri=null;
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            uploadProgress.setVisibility(View.GONE);
                            Toast.makeText(Add_post.this, "Post saving failed :(", Toast.LENGTH_SHORT).show();
                            //resetting fields
                            caption.setText("");
                            imgV.setImageAlpha(R.drawable.image_up_icon);
                            image_uri=null;
                        }
                    });
        }

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