android–firebase中的并发事务在读取dataSnapshot时产生null

android–firebase中的并发事务在读取dataSnapshot时产生null,第1张

概述两个应用程序使用相同的firebase数据库.一个应用程序,即A正在使用setValue写入一些值.第二个应用程序,即B正在尝试使用addListenerForSingleValueEvent读取一些数据,这个数据同时被用作A用户配置文件信息.这导致在读取数据库时B应用程序中的数据快照为空值.任何人都可以指导我如何

两个应用程序使用相同的firebase数据库.一个应用程序,即A正在使用setValue写入一些值.第二个应用程序,即B正在尝试使用addListenerForSingleValueEvent读取一些数据,这个数据同时被用作A用户配置文件信息.这导致在读取数据库时B应用程序中的数据快照为空值.任何人都可以指导我如何避免这种情况.

只是为了清楚一点,A正在写一个其他节点,而B正在访问它.

这就是我从B应用程序访问数据的方式.

DatabaseReference usersRef = MyDatabaseUtils.getUsersReference();    usersRef.orderByChild("userID").equalTo(userIDValue).addListenerForSingleValueEvent(new ValueEventListener() {        @OverrIDe        public voID onDataChange(DataSnapshot dataSnapshot) {            // Get value            if (dataSnapshot.getChildrenCount() > 0) {                 // Do something            } else {                // Show error            }        }        @OverrIDe        public voID onCancelled(final DatabaseError databaseError) {           // Show error        }    });

如果我在阅读B应用程序时停止A写作,一切正常.

解决方法:

一个简单的修复方法是防止数据快照在onDataChange函数中为null:

if (dataSnapshot != null && dataSnapshot.getChildrenCount() > 0) 

当A写入Firebase时,它可能会从以前存在的usersReft中删除一些属性.

总结

以上是内存溢出为你收集整理的android – firebase中的并发事务在读取dataSnapshot时产生null全部内容,希望文章能够帮你解决android – firebase中的并发事务在读取dataSnapshot时产生null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1118451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存