Невозможно получить данные из firestore с помощью адаптера firestore recycler, получая пустое представление recycler

#java #android #android-recyclerview #google-cloud-firestore

# #java #Android #android-recyclerview #google-облако-firestore

Вопрос:

Я не могу получить данные из firestore, и я не получаю никаких ошибок и сбоев приложения.

зависимости с использованием:

реализация ‘com.firebaseui:firebase-ui-firestore: 7.1.1’

реализация ‘com.google.firebase: firebase-firestore: 22.0.0 ‘

мои правила firestore:

 service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
       allow read, write;
    }
  }
}
 

мой адаптер:

 import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.firebase.ui.firestore.FirestoreRecyclerAdapter;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;

public class Adapter extends FirestoreRecyclerAdapter<Information, Adapter.nameHolder> {

    public Adapter(@NonNull FirestoreRecyclerOptions<Information> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull nameHolder holder, int position, @NonNull Information model) {
        holder.myName.setText(model.getMyName());
        Log.e("hi",model.getMyName());
    }

    @NonNull
    @Override
    public nameHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.name_card,parent,false);
        return new nameHolder(v);
    }

    class nameHolder extends RecyclerView.ViewHolder{
        TextView myName;

        public nameHolder(@NonNull View itemView) {
            super(itemView);
            myName = itemView.findViewById(R.id.myName);
        }
    }
}
 

Основной класс:

 import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.Query;

public class allNames extends AppCompatActivity {

    private TextView nameType;
    private RecyclerView myRecyclerView;
    private FirebaseAuth fAuth;
    private String userId;
    private FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
    private CollectionReference collectionReference = firebaseFirestore.collection("Hi");
    private Adapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_all_names);
        nameType = findViewById(R.id.nameType);
        myRecyclerView = findViewById(R.id.myRecyclerView);
        /*fAuth = FirebaseAuth.getInstance();
        userId = fAuth.getCurrentUser().getUid();*/
        setUpRecyclerView();
    }

    private void setUpRecyclerView(){
        Query query = collectionReference.orderBy("priority",Query.Direction.DESCENDING);

        FirestoreRecyclerOptions<Information> options = new FirestoreRecyclerOptions.Builder<Information>()
                .setQuery(query,Information.class).build();

        adapter = new Adapter(options);

        myRecyclerView.setHasFixedSize(true);
        myRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        myRecyclerView.setAdapter(adapter);


    }

    @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }

    @Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
    }
}
 

Я хочу получить только имя из firestore.

что можно сделать?

Комментарии:

1. Что именно в этом коде работает не так, как вы ожидаете? Пожалуйста, отредактируйте свой вопрос и добавьте свою структуру базы данных в качестве скриншота.

2. я ничего не получаю в своем приложении из firestore