Могу ли я получить значение 2 разных классов в одной и той же функции onDataChange - PullRequest
0 голосов
/ 03 октября 2018

Здравствуйте, я пытаюсь получить значение модели двух разных классов в одной и той же DataSnapshot?

Вот пример

 myDB.addValueEventListener(new ValueEventListener() {  
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Model_1 m1 = dataSnapshot.getValue(model_1.class); // First class
                Model_2 m2 = dataSnapshot.getValue(model_2.class); // Second class
            }
 });

Возможно ли это?

1 Ответ

0 голосов
/ 03 октября 2018

Могу ли я получить значение 2 разных классов в одной и той же функции onDataChange

Ответ - нет!Согласно официальной документации класса DataSnapshot :

Экземпляр DataSnapshot содержит данные из базы данных Firebase.Каждый раз, когда вы читаете данные базы данных, вы получаете данные как DataSnapshot.

Если вы используете класс модели, это означает, что вы используете встроенный сериализатор / десериализатор JSON-to-POJO.Поэтому, когда вы используете следующую строку кода:

Model_1 m1 = dataSnapshot.getValue(model_1.class);

Это означает, что вы десериализуете данные из JSON обратно в объект класса POJO.Это также означает, что тип объекта может иметь тип single , тип model_1.Он также не может быть любого другого типа, скажем, model_2.Это может быть только тип model_1.Таким образом, DataSnapshot определенного местоположения может возвращать объект одного типа.

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