Проблема при получении данных из Google Firestore, который содержит несколько коллекций и документов - PullRequest
0 голосов
/ 21 января 2020

Я новичок в Firestore. Я использовал функцию set для хранения данных в firestore. Моя база данных выглядит следующим образом:

Park -->Krishna -->802 -->2020 -->1 -->5 --> block:"Krishna"
                                               date:"5/01/2020"
                                               units:"100"

Park -->Godavari -->101 -->2020 -->1 -->8 --> block:"Godavari"
                                                date:"8/01/2020"
                                                units:"200"

Мне нужно получить доступ к единицам и отобразить их с помощью Toast.

Мой XML код:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
>

<Button
    android:id="@+id/get"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:text="Fetch data" />

<TextView
    android:id="@+id/textDisplay"
    android:layout_width="match_parent"
    android:layout_height="70dp"
    />
</LinearLayout>

И мой java код:

Button fetch;TextView td;


fetch = (Button)findViewById(R.id.get);
td=(TextView)findViewById(R.id.textDisplay);

DocumentReference user = db.collection("park").document("Godavari").collection("101").document("2020").collection("1").document("8");
efetch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    Toast.makeText(getApplicationContext(),"Clicked on fetch",Toast.LENGTH_LONG).show();
    user.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {
      if(documentSnapshot != null && documentSnapshot.exists())
      {
          Log.i("Data is",documentSnapshot.getData("units").toString());
          td.setText(documentSnapshot.getData("units").toString());
      }
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(getApplicationContext(),"Unable to fetch data",Toast.LENGTH_LONG).show();
        }
    });
} });

Когда я нажимаю кнопку «Получить», я должен получить единицы измерения (в данном случае это 200) и отобразить их в моем текстовом виде.

Но когда я нажимаю Кнопка «Получить», показывает, что «documentSnapshot» имеет значение null.

Как я могу решить эту проблему?

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