Требуется для хранения ответа Firebase в arraylist - PullRequest
0 голосов
/ 24 декабря 2018

Я должен получить ответ, указанный ниже, из базы данных по его URL.Не с помощью класса DatabaseReference или класса DataSnapshot.Просто по URL базы данных Firebase в реальном времени.

{
"Emily Aries": "199",
"First Last": "2",
"J J": "194",
"John Deniel": "198",
"Sec User": "3"
}

Здесь имена и их значения являются динамическими. Это те значения, которые URL Firebase возвращает от определенного узла с именем «пользователи».Я обязан хранить имена в ArrayList имен и идентификаторы в ArrayList идентификаторов.

Здесь я прилагаю привязку структуры моего узла Firebase вместе с кодом, который я пытался реализовать.

ApiInterface.java

@GET("group_chat/Demo Group_2-g/users")
Call<JSONObject> groupUsers();

Фрагмент из реализации в моем основном классе.

private void getGroupUsersName() {

    apiInterface  = ApiClient.createService(ApiInterface.class);

    Call<JSONObject> call = apiInterface.groupUsers();

    call.enqueue(new Callback<JSONObject>() {
        @Override
        public void onResponse(Call<JSONObject> call, retrofit2.Response<JSONObject> response) {

        }

        @Override
        public void onFailure(Call<JSONObject> call, Throwable t) {

        }
    });
}

Here, is the structure in firebase of

1 Ответ

0 голосов
/ 24 декабря 2018

Использование

JsonObject

Класс из Gson Lib вместо

JSONObject

 @GET("group_chat/Demo Group_2-g/users")
 Call<JsonObject> groupUsers();


call.enqueue(new Callback<JsonObject>() {
        @Override
        public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
            JsonObject jsonObject=response.body();
            ArrayList<String> names=new ArrayList<>();
            ArrayList<String> ids =new ArrayList<>();
            for(Map.Entry<String,JsonElement> entry : jsonObject.entrySet()){
                names.add(entry.getKey());
                ids.add(jsonObject.get(entry.getKey()).getAsString());
            }
        }

        @Override
        public void onFailure(Call<JsonObject> call, Throwable t) {

        }
    });

надеюсь, что это работает

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