Дооснащение не может получить данные из базы данных Firebase - PullRequest
0 голосов
/ 20 января 2020

Я использую модификацию для доступа к базе данных firebase, но она показывает только «use jsonReader.stLenient (true) ...» *

Это моя основная деятельность. java


public class MainActivity extends AppCompatActivity {
    private TextView textViewResult;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textViewResult=findViewById(R.id.text_view_result);


        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://XXXXXX.firebaseio.com")
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        API jsonPlaceHolderApi = retrofit.create(API.class);

        Call<List<user>> call = jsonPlaceHolderApi.getPosts();

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

                if (!response.isSuccessful()) {
                    textViewResult.setText("Code: " + response.code());
                    return;
                }

                List<user> posts = response.body();

                for (user post : posts) {
                    String content = "";
                    content += "name: " + post.getName() + "\n";
                    content += "email: " + post.getEmail() + "\n";
                    content += "userphone: " + post.getPhone() + "\n";


                    textViewResult.append(content);
                }
            }

            @Override
            public void onFailure(Call<List<user>> call, Throwable t) {
                textViewResult.setText(t.getMessage());
            }


        });



    }

}


это user. java


public class user {

    private String email;
    private String name;
    private String phone;


    public user(String email, String name, String phone) {
        this.email = email;
        this.name = name;
        this.phone = phone;
    }


    public String getEmail() {
        return email;
    }

    public String getName() {
        return name;
    }

    public String getPhone() {
        return phone;
    }
}



Это API. java


package com.example.myapplication;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.GET;

public interface API {
    @GET(".")
    Call<List<user>> getPosts();
}

Это структура данных firebase


[ {
  "email" : "xxxxxx@gmail.com",
  "name" : "rrrrr",
  "userphone" : "458793258"
}, {
  "email" : "jjjjjj@gmail.com",
  "name" : "yyyyyy",
  "userphone" : "658976589"
}, {
  "email" : "ooooooo@gmail.com",
  "name" : "llllllll",
  "userphone" : "90890890"
} ]

Здесь я использую их, но всякий раз, когда Я пытаюсь запустить показывает ошибку сообщения. Каждый раз. Также я хочу знать, что я должен передать внутри Get (??), когда я использую URL базы данных firebase в baseurl.

1 Ответ

0 голосов
/ 20 января 2020

убедитесь, что у вас есть:

compile 'com.google.code.gson:gson:2.6.1'

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

Gson gson = new GsonBuilder()
        .setLenient()
        .create();

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create(gson))
        .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...