使用 FirestoreRecyclerAdapter 但无法从 Firebase 查询任何数据

根据https://github.com/firebase/FirebaseUI-Android/tree/master/firestore上的指南,我使用 FirestoreRecyclerAdapter 制作了一个列表项,但我不知道为什么无法检索任何数据。事实上,数字视图项目显示正确,但内容始终为空。任何人都可以帮助我。下面是源代码:

活动:

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

private FirebaseFirestore mDatabase;
private ViewPager mViewPager;

private CollectionReference mOrderRef;
private OrderAdapter mOrderAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_order_list);

    mDatabase = FirebaseFirestore.getInstance();
    mOrderRef = mDatabase.collection("order");
    Query query = mOrderRef.limit(1000);
    FirestoreRecyclerOptions<OrderInfo> options = new FirestoreRecyclerOptions.Builder<OrderInfo>().setQuery(query, OrderInfo.class).build();
    mOrderAdapter = new OrderAdapter(options);

    RecyclerView recyclerView = (RecyclerView)findViewById(R.id.recycler_view_order_list);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(mOrderAdapter);
}

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

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

适配器:

    public class OrderAdapter extends FirestoreRecyclerAdapter<OrderInfo, OrderAdapter.OrderHolder> {

    /**
     * Create a new RecyclerView adapter that listens to a Firestore Query.  See {@link
     * FirestoreRecyclerOptions} for configuration options.
     *
     * @param options
     */
    public OrderAdapter(@NonNull FirestoreRecyclerOptions<OrderInfo> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull OrderHolder holder, int position, @NonNull OrderInfo model) {
        holder.txtTitle.setText(String.valueOf(model.getTitle()));
        holder.txtCusName.setText(String.valueOf(model.getCusName()));
        holder.txtDate.setText(String.valueOf(model.getDate()));
    }

    @NonNull
    @Override
    public OrderHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.order_item, parent, false);
        return new OrderHolder(view);
    }


    class OrderHolder extends RecyclerView.ViewHolder{
        TextView txtCusName;
        TextView txtTitle;
        TextView txtDate;

        public OrderHolder(@NonNull View itemView) {
            super(itemView);
            txtCusName = itemView.findViewById(R.id.txt_customer_name);
            txtTitle = itemView.findViewById(R.id.txt_title);
            txtDate = itemView.findViewById(R.id.txt_date);
        }
    }
}

数据模型:

    public class OrderInfo {

    private String mTitle;
    private String mCusName;
    private String mDate;

    public OrderInfo(){
        //default constructor
    }

    public OrderInfo(String title, String name, String date) {
        this.mTitle = title;
        this.mCusName = name;
        this.mDate = date;
    }

    public String getTitle() {
        return mTitle;
    }

    public String getCusName() {
        return mCusName;
    }

    public void setCusName(String cusName) {
        this.mCusName = cusName;
    }
    public String getDate() {
        return mDate;
    }
}

在此处输入图片说明

我的数据库结构: 在此处输入图片说明

阿萨杜扎曼博士

您的数据模型与数据库结构不一致。尝试像下面这样更新它:

public class OrderInfo {

    private String title;
    private String name;
    private String date;

    public OrderInfo(){
        //default constructor
    }

    public OrderInfo(String title, String name, String date) {
        this.title = title;
        this.name = name;
        this.date = date;
    }

    public String getTitle() {
        return title;
    }

    public String getName() {
        return name;
    }

    public String getDate() {
        return date;
    }
}

除此之外不要忘记将您的项目与 firebase firestore 同步。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

已导入Firebase,但无法使用

如何使用FirestoreRecyclerAdapter进行复杂的查询?

Firebaseui FirestoreRecyclerAdapter:如何使用 DocumentReference 指向的数据

从href获取数据,但无法使用

使用onCreateView的Android片段但无法添加Firebase

我可以将数据保存到Firebase,但无法检索

无法使用equalTo()查询Firebase检索任何值

无法让FirestoreRecyclerAdapter显示项目

使用AngularJS Spring获取数据但无法以html显示数据

Rx订阅OnComplete触发,但无法使用数据

尝试获取特定节点上可用的数据,但无法从Firebase数据库获取数据

有没有结合使用FirestoreRecyclerAdapter查询光标的方式进行分页查询?

使用if else从firebase查询数据

使用FreeTDS和UnixODBC。能够连接但无法从isql或RODBC执行任何SQL命令

我正在使用Laravel 5,但无法使用php artisan migration迁移数据库

使用 FirestoreRecyclerAdapter 接口实现 onLongClick

新的 Firestore 查询后 FirestoreRecyclerAdapter 未更新

Firebase 查询未返回任何数据

自动完成适用于示例数据,但无法使用真实数据

FirestoreRecyclerAdapter不显示新添加的FireStore数据

FirestoreRecyclerAdapter-如何知道何时检索数据?

在Azure WebJobs中使用Ninject但无法通过我的数据库客户端

对连续日期进行分组[重复问题,但无法使用我的数据]

尽管没有显示错误,但无法使用PHP显示数据库中的特定行

Vue.js Typescript 我使用 getter 获取数据但无法在方法中访问它

gae运行顺利,但无法使用html和client.js检索数据

试图使用DefaultTableModel将数据动态添加到JTable中,但无法正常工作

尝试使用伪造的JSON数据,但无法在HTML页面中更新

我使用js动态生成某些表单,但无法将数据传递到后端