Можете ли вы, ребята, помочь мне с моим кодом утилизации в пожарном магазине здесь, я переписываю 5 раз, все тот же, дисплей ничего не показывает,
в первый раз, он загрузил только один список того, что я намеревался показать,поэтому я пытаюсь поиграть с изменением макета, но теперь он вообще ничего не показывает, даже если я вернусь к исходному макету ограничений
решений, которые я пробовал:
1) добавление adapter.listeningonSart ()
2) правила консоли Firestore изменяются, чтобы разрешить
3) изменить макет утилизатора на wrap_content, поэкспериментировать с макетом координатора и всем, что связано с макетом
4)добавьте прослушиватель, чтобы увидеть, существуют ли данные в то время, в onCreate ()> данные существуют, просто не отображаются в представлении реселлера.
5) добавить еще одно действие для проверки подлинности и добавить данные для проверки подлинности в базу данных,> работает, но проблема сохраняется
6) запустить отладку и добавить проверку потока с помощью Log.i ()> turnНаши, onBind и OnCreate на адаптере никогда не вызывались, но я не могу найти ответ, почему,
Вы, ребята, пожалуйста, помогите мне, большое спасибо.
Я проверил, существуют ли данные с помощью datasnapshot, они действительно существуют,
Я добавил:
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
if (adapter != null) {
adapter.stopListening();
}
}
также, все еще не работает.я погуглил все возможные решения, пока ничего не работает.
import javax.annotation.Nullable;
public class TestActivity extends AppCompatActivity {
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private CollectionReference notebookRef = db.collection("employee");
private EmployeeAdapter adapter;
private CollectionReference secondref = db.collection("second_employee");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
Log.i("chekk","1");
//adapter.startListening();
secondref.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
for(QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){
String kk = documentSnapshot.getId();
Log.i("chekk uid we input:", kk);
}
}
});
notebookRef.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
for(QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){
String kk = documentSnapshot.getId();
Log.i("chekk uid:", kk);
}
}
});
setupRecyclerView();
}
private void setupRecyclerView() {
Query query = notebookRef.orderBy("name").limit(2);
FirestoreRecyclerOptions<Nama> options = new FirestoreRecyclerOptions.Builder<Nama>()
.setQuery(query,Nama.class)
.build();
Log.i("chekk","2");
adapter = new EmployeeAdapter(options);
Log.i("chekk","3");
RecyclerView recyclerView = findViewById(R.id.recyclreID);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
Log.i("chekk","4");
// adapter.startListening();
recyclerView.setAdapter(adapter);
Log.i("chekk","5");
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
}
вот мой код адаптера:
public class EmployeeAdapter extends FirestoreRecyclerAdapter<Nama,EmployeeAdapter.InsiderHolder> {
public EmployeeAdapter(FirestoreRecyclerOptions<Nama> options) {
super(options);
Log.i("chekk","6");
}
@Override
protected void onBindViewHolder(@NonNull InsiderHolder holder, int position, @NonNull Nama model) {
Log.i("chekk","99");
holder.textView.setText(model.getName());
}
@NonNull
@Override
public InsiderHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
//return null;
Log.i("chekk","88");
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.custom_layout_testt, viewGroup,false);
return new InsiderHolder(v);
}
public class InsiderHolder extends RecyclerView.ViewHolder {
TextView textView;
public InsiderHolder(@NonNull View itemView) {
super(itemView);
Log.i("chekk","77");
textView = itemView.findViewById(R.id.textviewcustomID);
}
}
}
javaкласс для объекта:
public class Nama {
private String name;
public Nama() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
xml для повторного просмотра:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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=".TestActivity">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recyclreID">
</android.support.v7.widget.RecyclerView>
</android.support.design.widget.CoordinatorLayout>
xml для пользовательского макета:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textviewcustomID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:layout_marginStart="176dp"
android:layout_marginTop="17dp"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:maxLines="1"
android:text="Title"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
/>
</RelativeLayout>
</android.support.v7.widget.CardView>