collectionGroup () не является публичной.Не может быть доступен снаружи пакета - PullRequest
0 голосов
/ 08 мая 2019

Я хочу использовать collectionGroup() внутри RecyclerView.ViewHolder для запроса подколлекции на моем FirebaseFirestore, и я получаю сообщение об ошибке:

collectionGroup (java.lang.String) не является публичной в 'Com.google.firebase.firestore.FirebaseFirestore. Не могут быть доступны снаружи пакет

class WallHolder extends RecyclerView.ViewHolder {

        private LinearLayout root, llp, image_layout;
        private RelativeLayout rlp;
        private TextView comment, tv_due, tv_pass;
        private Button btn_play;
        private SeekBar seekBar;
        private ImageView imageView[] = new ImageView[3];

        public WallHolder(@NonNull View itemView) {
            super(itemView);

            root = itemView.findViewById(R.id.list_root);

            llp = root.findViewById(R.id.llp);
            rlp = root.findViewById(R.id.rlp);
            comment = root.findViewById(R.id.tv_cmt);
            image_layout = root.findViewById(R.id.img_layout);

            btn_play = llp.findViewById(R.id.btn_play);

            tv_due = rlp.findViewById(R.id.tv_due);
            tv_pass = rlp.findViewById(R.id.tv_pass);
            seekBar = rlp.findViewById(R.id.seek_bar);

            imageView[0] = image_layout.findViewById(R.id.img_1);
            imageView[1] = image_layout.findViewById(R.id.img_2);
            imageView[2] = image_layout.findViewById(R.id.img_3);
        }


        void setData(final Map<String, Object> post) {

            FirebaseFirestore db = FirebaseFirestore.getInstance();
            final StorageReference storageRef = FirebaseStorage.getInstance().getReference();


            //This is where i get the error
            //db.collectionGroup()
            //


            //This code wasn't working so i want to replace it with the code above
            db.collection("Post")
                    //.document(post.get("post_Id").toString())
                    .document("mnk2EqrVmm3upTFYL4eB")
                    .collection("Post_Images")
                    .get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<QuerySnapshot> task) {

                            if (task.isSuccessful()) {
                                final List<Bitmap> list = new ArrayList<>();
                                Toast.makeText(WallActivity.this, String.valueOf(task.getResult().size()), Toast.LENGTH_SHORT).show();

                                for (QueryDocumentSnapshot document : task.getResult()){

                                }
                            } else {

                            }

                        }
                    });
        }
    }

1 Ответ

1 голос
/ 08 мая 2019

Вы получаете следующую ошибку:

collectionGroup (java.lang.String) не является общедоступным в com.google.firebase.firestore.FirebaseFirestore '. Нельзя получить доступ снаружи пакета

Поскольку в более ранних версиях Firestore метод collectionGroup (String collectionId) FirebaseFirestore был определен без модификатора, что означает, что он доступен только в том же классе и в том же пакете.

Поскольку ни одно из этих двух условий не выполняется, вы можете получить доступ к этому методу вне класса или пакета. Таким образом, это означает, что вы не используете последнюю версию.

Начиная с 8 мая 2019 года, collectionGroup(String collectionId) становится общедоступным, поэтому, пожалуйста, обновите свою зависимость Firestore до:

implementation 'com.google.firebase:firebase-firestore:19.0.0'

И вы сможете использовать этот метод.

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