【问题标题】:Search Firestore query don't show data in RecycleView搜索 Firestore 查询不在 RecycleView 中显示数据
【发布时间】:2018-12-28 23:58:52
【问题描述】:

这是我在 Firestore 中的数据 I want to show this name "mouad"

这是我的代码

公共类 SearchActivity 扩展 AppCompatActivity { 私有 RecyclerView mMainList; 私有 FirebaseFirestore mFirestore; 私有列表 usersList; 私有 CustomAdapter 适配器; 编辑文本编辑文本; 按钮 btnSearch; 字符串名称; @覆盖 受保护的无效 onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_firebase); mFirestore = FirebaseFirestore.getInstance(); editText = (EditText) findViewById(R.id.search); btnSearch = (Button) findViewById(R.id.btn); usersList = new ArrayList(); adapterRe = new CustomAdapter(getApplicationContext(), usersList); mMainList = (RecyclerView) findViewById(R.id.recyvle); // mMainList.setHasFixedSize(true); // mMainList.setLayoutManager(new LinearLayoutManager(this)); // mMainList.setAdapter(adapterRe); btnSearch.setOnClickListener(new View.OnClickListener() { @覆盖 公共无效 onClick(查看 v){ SearchUserFirebase(); } }); } 私人无效 SearchUserFirebase() { name = editText.getText().toString(); if(!name.isEmpty()){ 查询 query = mFirestore.collection("Movies").orderBy("name" ).startAt(name).endAt(name + "\uf8ff"); query.addSnapshotListener(new EventListener() { @覆盖 public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) { 如果(e!= null){ Log.d("TAG", "错误:" + e.getMessage()); } ArrayList adsList = new ArrayList(); for(DocumentChange 文档:documentSnapshots.getDocumentChanges()){ if (doc.getType() == DocumentChange.Type.ADDED){ 电影用户 = doc.getDocument().toObject(Movies.class); usersList.add(users); adapterRe.notifyDataSetChanged(); } } Log.d("TAG", "搜索记录数为" + adsList.size()); } }); } } }

这是错误

error

【问题讨论】:

  • 请以文本格式添加代码,而不是图片。
  • 发布整个活动代码@mouad zizi
  • 从注释中删除这一行 - // mMainList.setLayoutManager(new LinearLayoutManager(this)); // mMainList.setAdapter(adapterRe);您的错误将得到解决。
  • 这对你有用吗@mouadzizi ?
  • 不,它不起作用

标签: java android firebase android-recyclerview google-cloud-firestore


【解决方案1】:

“Movies.java”文件中是否有一个空的构造函数?

 public Movies() {
      //Necessary to retrieve data
 }

【讨论】:

    【解决方案2】:

    当您尝试从后台线程设置适配器时,通常会出现此错误,而 not 从“主”线程(例如在 onCreate() 方法中)设置适配器。

    如果您尝试从onEvent() 方法内部的“延迟”方法设置适配器,则始终会出现此警告。

    要解决这个问题,请将适配器的创建移到同一线程中,并从 for 循环中获取以下代码行。

    adapterRe.notifyDataSetChanged();
    

    【讨论】:

    • 什么都没有!?错误标签标签:搜索记录数为 0
    • 我在循环中添加这一行时修复它 mMainList.setAdapter(adapterRe);
    • 当我搜索一个单词时,第一个字母以较小的字母开始显示结果当相同的单词发音但第一个字母很大时,结果不出现
    • 我有一个新的错误 + 当我搜索一个词时,我只得到以你输入的同一个词开头的地址有没有什么办法可以让我甚至在标题中的中间词,因为例如这是“权力的游戏”的标题如果任何电影都只引入“权力”
    • 是的,你可以看看我从这个post的回答。
    猜你喜欢
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多