Как получить дочерние данные в Firebase, используя «PUSH» без какого-либо формата шифрования

0

Я создаю приложение messenger в android, и я пытаюсь извлечь данные из Firebase в мое приложение для Android. Но когда я делаю, я получаю полное дерево на своем экране. Я хочу получить доступ к ребенку напрямую. Есть ли способ получить только то значение, которое я хочу?

retr.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Attach an listener to read the data at our posts reference
        ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                totalmsg[0] =snapshot.getValue().toString();
                emultiview.setText(totalmsg[0].toString());
            }
            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });
    }
});

Я хочу получить привет от этого в Firebase. Проблема, с которой я столкнулся, - это данные шифрования. Есть ли способ получить это? И я не могу добавить данные без использования push(), есть ли другая альтернатива push()?

{
  "chat" : {
    "-JZvOzp0L1ccuBt2TVN7" : {
      "author" : "JavaUser21221",
      "message" : "hello "
    },
    "-JZvPneW5et0_EVRvL5g" : {
      "author" : "JavaUser21221",
      "message" : "hai"
    }
}
Теги:
firebase

3 ответа

2
Лучший ответ
r.addChildEventListener(new ChildEventListener() {
                    @Override
                    public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {

                        Map<String,Object> newPost=(Map<String,Object>)snapshot.getValue();

                        String name1 = String.valueOf(newPost.get("Author"));
                        String message1 = String.valueOf(newPost.get("Title"));


                        System.out.println("Message: " + newPost.get("Author"));
                        System.out.println("Name: " + newPost.get("Title"));

                    }
                });
2

предположим, что у вас есть структура followig в базе данных firebase:

users:{ uid:[userid]
          name:[username]
}
Student:{ rollno:[rollno]
          name:[studendname]
}

Затем для доступа к ref.child('users/'+userid).addValueEventListener(... пользователей вы можете использовать url ref.child('users/'+userid).addValueEventListener(...

0

Это окончательный ответ, который я выяснил

ref1.addChildEventListener(new ChildEventListener() {
                    // Retrieve new posts as they are added to Firebase
                    @Override
                    public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {

                        Map<String,Object> newPost=(Map<String,Object>)snapshot.getValue();

                        String name1 = String.valueOf(newPost.get("Name"));
                        String message1 = String.valueOf(newPost.get("Message"));

                        System.out.println("---------------- full data ---------------------");
                        System.out.println("Message: " + newPost.get("Message"));
                        System.out.println("Name: " + newPost.get("Name"));
                        System.out.println("----------------- end of full data --------------------");

                        if(name1.equals("CCCCC"))
                        {
                            System.out.println("---------------- conditioned data ---------------------");
                            System.out.println("Message: " + newPost.get("Message"));
                            System.out.println("Name: " + newPost.get("Name"));
                            System.out.println("----------------- end of conditioned data --------------------");
                        }
                    }

                    @Override
                    public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                    }

                    @Override
                    public void onChildRemoved(DataSnapshot dataSnapshot) {

                    }

                    @Override
                    public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                    }

                    @Override
                    public void onCancelled(FirebaseError firebaseError) {

                    }
                });
            }
        });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню