如何在没有EventListener的情况下从Firebase检索数据?

曼努埃尔·罗德里格斯(Manuel Rodriguez)

我在Android应用程序上使用Firebase,我知道如何使用EventListener从数据库中获取数据。到目前为止。

我的问题是:我有一个ReciclerView,它显示数据中的信息,但仅当我修改数据库时才显示。如果我关闭该应用程序然后再次打开,它什么也不会显示。然后,我修改了一些内容并将所有我的元素显示在容器中。

有什么方法可以加载数据而无需等待事件,而是手动获取?

先感谢您。

更新1(这是我的代码,可以正常工作):

databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            listaDeLyrics.clear();
            for (DataSnapshot lyricFromFB : dataSnapshot.getChildren()){
                    LyricCard lc = lyricFromFB.getValue(LyricCard.class);
                    listaDeLyrics.add(lc);
                }
            }
        @Override
        public void onCancelled(DatabaseError databaseError) {

        }

    });

我想不使用EventListener来获取数据。

解决方案:我修复了在创建RecyclerView之前从数据库保存数据的问题。似乎没有任何显示,因为列表为空(但我不明白为什么它没有响应列表上的更改)

注意:addValueEvent甚至在第一次修改时也不会起作用。它在声明时以及事件发生时都获取信息。singleValueEvent的工作原理完全相同,不同之处在于它仅执行一次,只是监听了第一个事件。

我希望这也可以帮助某人。

列维·莫雷拉(Levi Moreira)

之所以发生这种情况,可能是因为您正在使用addValueEventListener()它将向引用添加侦听器并侦听该引用(路径)中的更改。

我建议使用addListenerForSingleValueEvent()它将仅查询该引用一次,然后从该引用断开。因此,如果每次您的活动打开时都执行此操作,则每次都会有更新的值。

ref.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
       //parse data to recycler view adapter and call notifyDatasetChange()
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
});

但是,您必须使用eventlisteners来读取您的Firebase数据库,没有其他方法。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在没有辅助功能模板的情况下检索可变参数模板参数?

如何在没有任何实体的情况下测试理论EventListener / Subscriber

如何在没有网站的情况下实现Android Firebase动态链接?

如何在没有侦听器的情况下从Firebase数据库检索数据?

如何在没有jQuery的情况下使用EventListener仅JavaScript切换子菜单?

Docker:容器如何在没有卷的情况下持久存储数据?

如何在不监听事件的情况下从Firebase数据库检索数据

如何在没有竞争条件的情况下订阅IObservable序列,强制完成并检索所有数据

如何在没有其他Google库的情况下安装Firebase Analytics Pod?

如何在没有DnsServer模块的情况下使用PowerShell检索所有DNS记录?

如何在没有Firebase SDK的情况下(即通过REST)生成FCM注册令牌?

如何在没有Firebase的情况下使聊天框变得扑朔迷离?

如何在HTML中没有<button>的情况下提交<form>的数据?

如何在C中没有指针的情况下检索超出范围的静态值?

没有cron的情况下如何在MySQL数据库中写入数据?

如何在R中没有未选择数据的情况下绘制子集数据

如何在没有收到TCP套接字的情况下检查是否有传入数据?

如何在没有唯一自动ID Firebase Swift的情况下进行附加

Firebase如何在没有网站的情况下进行App Indexing?

如何在不知道特定孩子密钥的情况下统一从Firebase检索数据

SPARQL 如何在没有数据方案的情况下打印数据

如何在没有秒的情况下从数据库中检索日期

Firebase Auth - 如何在没有当前用户对象的情况下刷新访问令牌

在没有streambuilder的情况下获取firebase数据

如何在没有唯一 ID 的情况下将数据保存在 Firebase 中?

如何在没有 StreamBuilder 的情况下从 Firestore 检索实时日期

如何在没有子查询或嵌套查询的情况下检索数据

如何在没有管理 SDK 的情况下添加 firebase 自定义声明?

Firebase 函数如何在没有管理员权限的情况下访问 Firestore