【问题标题】:Android Studio Firebase Get Data [duplicate]Android Studio Firebase 获取数据 [重复]
【发布时间】:2019-03-22 04:59:36
【问题描述】:

我正在尝试使用 android studio 获取 firebase 数据并将其显示在屏幕上。我正在尝试将数据库中与其相关的任何内容显示到 RecyclerView。但是数据没有返回,也没有任何显示(没有错误声明)。任何想法为什么?

private void firebaseLotSearch() {

        Toast.makeText(BuyingParking.this,"Started Search",Toast.LENGTH_LONG).show();
        Query query = mUserDatabase.startAt(searchText).endAt(searchText+"\uf8ff");
                FirebaseRecyclerOptions<Lot_Location> options =
                new FirebaseRecyclerOptions.Builder<Lot_Location>()
                        .setQuery(query, Lot_Location.class)
                        .build();

        //   Lot_Location.class,R.layout.list_layout,LotViewHolder.class,mUserDatabase
        FirebaseRecyclerAdapter<Lot_Location,LotViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Lot_Location, LotViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull LotViewHolder holder, int position, @NonNull Lot_Location model) {

                holder.setDetails(model.getLocation(),model.getAdmin(),model.getPrice());

            }
            @NonNull
            @Override
            public LotViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
                return null;
            }
        };
        searchParking.setAdapter(firebaseRecyclerAdapter);
    }

    public class LotViewHolder extends RecyclerView.ViewHolder{
        public LotViewHolder(@NonNull View itemView) {
            super(itemView);
            mView = itemView;
        }

        public void setDetails(String location,String admin,String price)
        {
            TextView m_location = (TextView)mView.findViewById(R.id.Lot);
            TextView m_admin = (TextView)mView.findViewById(R.id.Admin);
            TextView m_price = (TextView)mView.findViewById(R.id.price);

            m_location.setText(location);
            m_admin.setText(admin);
            m_price.setText(price);
        }

    }

【问题讨论】:

  • 您可以设置breakpoint 并调查会发生什么
  • 您似乎没有在代码中的任何位置调用 startListening(),这是 FirebaseUI 开始观察数据库所必需的。请检查副本。

标签: java android firebase firebase-realtime-database


【解决方案1】:

onCreateViewHolder 返回 null。您需要返回一个 LotViewHolder 类的对象。

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View rootView = mInflater.inflate(R.layout.your_item_view, parent, false);
    ViewHolder holder = new ViewHolder(rootView);
    return holder;
}

【讨论】:

    猜你喜欢
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2019-02-16
    • 2021-05-07
    • 2019-04-30
    相关资源
    最近更新 更多