gpt4 book ai didi

android - 如何在不监听事件的情况下从 firebase 数据库中检索数据

转载 作者:行者123 更新时间:2023-11-29 18:58:13 25 4
gpt4 key购买 nike

<分区>

你好,我正在为我的 Android 应用程序使用 Firebase 数据库。我将数据存储在 firebase 数据库中,我想在创建 fragment 时获取它,但是当我启动我的应用程序时,方法(从 firebase 数据库获取数据)返回无效的每当我使用 android 设备恢复 fragment 时,recyclerView 就会填充来自 firebase 的数据。我的问题是为什么列表第一次返回 null。以及如何在创建 fragment 时获取数据

优惠 fragment

 @Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View offersView = inflater.inflate(R.layout.fragment_offers, container, false);

mOffersRecyclerView = offersView.findViewById(R.id.rv_offers);
mAddCard = offersView.findViewById(R.id.fab_add_card);

setUp();

return offersView;
}

@Override
public void setPresenter(OffersContract.Presenter presenter) {
mPresenter = presenter;
}

@Override
public void setUp() {
mOffersList = mPresenter.getOffersList();
mOffersAdapter = new OffersAdapter(getActivity(), mOffersList);

mOffersRecyclerView.setAdapter(mOffersAdapter);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity());
mOffersRecyclerView.setLayoutManager(layoutManager);
mOffersRecyclerView.setHasFixedSize(false);

performActions(mAddCard);
}

OffersPresenter

 @Override
public List<Offers> getOffersList() {

return databaseHelper.getOffers();
}

DatabaseHelper -> getOffers()

public List<Offers> getOffers() {
DatabaseReference offerReference = getDatabase().child("offers");

offerReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final Iterable<DataSnapshot> children = dataSnapshot.getChildren();

for (DataSnapshot d : children) {
offersList.add(d.getValue(Offers.class));
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
return offersList;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com