Получить данные Firebase с ключом к диалогу - PullRequest
0 голосов
/ 07 ноября 2019

Я подключил свое приложение для Android к базе данных Firebase в реальном времени. Он успешно извлекает данные из базы данных и проектирует с помощью действия, которое представляет собой RecyclerView, показывающий макет CardView. Теперь, когда я выбираю конкретную CARD, должен появиться DIALOG, показывающий все данные этого конкретного узла firebase только для макета диалога.

Мне нужно получить pushID (как переменную selectedKey) выбранногоCARD и вызовите диалог, который показывает данные из firebase путем повторного извлечения из базы данных с этой строкой «KEY» ... Или есть какой-нибудь другой простой способ ...?

Я также проиллюстрировал то, что яхочу сделать.

подключенная база данных firebase, показывающая узел

активность приложения и макет диалога

код - держатель

<holder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onClick(View view, int position) {
                    selectedArticle = model;
                    selectedKey = getSnapshots().getSnapshot(position).getKey();

                    Log.d("Key item", ""+selectedKey);

                    showArticle.setContentView(R.layout.show_article_dialog);

                    show_article_title.setText(model.getTitle());
                    show_article_tag1.setText(model.getTag1());
                    show_article_tag2.setText(model.getTag2());
                    show_article_tag3.setText(model.getTag3());
                    show_article_content.setText(model.getContent());

                    articleBack.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            showArticle.dismiss();
                        }
                    });
                    showArticle.show();>

1 Ответ

0 голосов
/ 08 ноября 2019

попробуйте этот код, чтобы получить данные конкретного узла, используя выбранный ключ узла

 DatabaseReference mArticalReference;

mArticalReference=FirebaseDatabase.getInstance().getReference().child("ARTICALE");

String selectedKey="-Lt0JLmniHevNn4JNP57" //replace with your selected key 

mArticalReference.child(selectedKey)addListenerForSingleValueEvent(new 
 ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

            Map<String, String> map = (Map) dataSnapshot.getValue();
            if (map != null) {
                String message = map.get("content");
                String userName = map.get("tag1");
            }

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...