Здравствуйте, я относительно новичок в firebase, и я видел, что есть новая реализация адаптера firebase recyclerview для фрагмента. Моя проблема в том, что приложение не заполняет мой recyclerview. Вот что у меня в виде кода
мой фрагмент
public class DummyFragment extends android.support.v4.app.Fragment {
private FirebaseRecyclerAdapter<Product, ProductViewHolder> mFirebaseAdapter;
private RecyclerView mProduceList = null;
private View rootView;
private Context c;
private LinearLayoutManager manager;
public DummyFragment() {}
public static DummyFragment newInstance() {
DummyFragment fragment = new DummyFragment();
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.dummy_fragment, container, false);
FirebaseApp.initializeApp(c);
mProduceList = rootView.findViewById(R.id.recyclerView);
mProduceList.hasFixedSize();
mProduceList.setLayoutManager(new LinearLayoutManager(getActivity()));
DatabaseReference productRef = FirebaseDatabase.getInstance().getReference().child("Product1");
Query productQuery = productRef.orderByKey();
FirebaseRecyclerOptions productOptions = new FirebaseRecyclerOptions.Builder<Product>().setQuery(productQuery, Product.class).build();
mFirebaseAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(productOptions) {
@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rootView = LayoutInflater.from(c).inflate(R.layout.dummy_fragment, parent, false);
return new ProductViewHolder(rootView);
}
@Override
protected void onBindViewHolder(ProductViewHolder viewHolder, int position, Product model) {
viewHolder.setTitle(model.getTitle());
viewHolder.setDesc(model.getDesc());
}
};
mProduceList.setAdapter(mFirebaseAdapter);
return rootView;
};
@Override
public void onStart() {
super.onStart();
mFirebaseAdapter.startListening();
}
@Override
public void onStop() {
super.onStop();
mFirebaseAdapter.stopListening();
}
public static class ProductViewHolder extends RecyclerView.ViewHolder {
View mView;
public ProductViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setTitle(String name) {
TextView post_name = (TextView) mView.findViewById(R.id.productTitle);
post_name.setText(name);
}
public void setDesc(String type) {
TextView post_type = (TextView) mView.findViewById(R.id.productDesc);
post_type.setText(type);
}
}
}
Класс продукта
public class Product {
String Title,Description;
private String image;
public Product(){}
public Product(String title,String desc, String image){
Title = title;
Description = desc;
this.image = image;
}
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDesc() {
return Description;
}
public void setDesc(String desc) {
Description = desc;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
и мой манифест
<?xml version = "1.0" encoding = "utf-8"?>
<application
android:allowBackup = "true"
android:icon = "@mipmap/ic_launcher"
android:label = "@string/app_name"
android:roundIcon = "@mipmap/ic_launcher_round"
android:supportsRtl = "true"
android:theme = "@style/Theme.AppCompat.DayNight.NoActionBar">
<activity
android:name = ".MainActivity"
android:label = "@string/app_name">
<intent-filter>
<action android:name = "android.intent.action.MAIN" />
<category android:name = "android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Я не вижу причины, по которой он не заполняет recyclerview, но я думаю, что мне что-то не хватает. Это сообщение, которое у меня также есть в моей консоли W / FA: Ошибка подключения службы: ConnectionResult {statusCode = SERVICE_VERSION_UPDATE_REQUIRED, resolution = null, message = null} I / FA: Диспетчер тегов не найден и поэтому не будет использоваться D / FA: событие журнала (FE): screen_view (_vs), Bundle [{firebase_event_origin (_o) = auto, firebase_screen_class (_sc) = MainActivity, firebase_screen_id (_si) = - 7534482907761949523}] V / FA: подключение к удаленному сервису W / GooglePlayServicesUtil: сервисы Google Play устарели. Требуется 11910000, но найдено 9879470 V / FA: Обработка поставленных в очередь сервисных задач: 4 E / FA: Отказ от данных. Не удалось отправить запуск приложения E / FA: не удалось получить идентификатор экземпляра приложения. E / FA: не удалось отправить текущий экран в сервис E / FA: Отказ от данных. Не удалось отправить событие в службу [03-15 00: 06: 26.003 5399: 5417 D /] HostConnection :: get () Установлено новое соединение с хостом 0x98c0ac40, tid 5417
Выполните одно из следующих действий:
Я использую эмулятор Android
Начинается с Android Studio 2.3.2, есть предустановленный магазин воспроизведения, откройте его и установите приложение Play Services Info, которое поможет вам проверить и обновить Play Services.
Хорошо, я делаю это прямо сейчас, кроме этого, видите ли вы какие-либо недостатки в коде?
Чтобы решить эту проблему, удалите следующую строку кода:
mProduceList.hasFixedSize();
Для получения дополнительной информации, пожалуйста, ответьте на эту аналогичную проблему на Github.
Привет, возможно ли, что мои зависимости неверны?