为了账号安全,请及时绑定邮箱和手机立即绑定

Firebase脱机功能和addListenerForSingleValueEvent

Firebase脱机功能和addListenerForSingleValueEvent

POPMUISE 2019-06-19 11:25:50
Firebase脱机功能和addListenerForSingleValueEvent每当我用addListenerForSingleValueEvent带着setPersistenceEnabled(true)的本地脱机副本。DataSnapshot和不更新DataSnapshot从服务器。但是,如果我使用addValueEventListener带着setPersistenceEnabled(true),我可以得到最新的DataSnapshot从服务器。这正常吗addListenerForSingleValueEvent因为它只会搜索DataSnapshot本地(脱机)并在成功检索后移除其侦听器。DataSnapshot 一次(线下还是在线)?
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

当Workinkg启用持久性时,我计算了侦听器接到onDataChange()调用并在2次停止侦听的次数。为我工作,也许能帮上忙:

private int timesRead;private ValueEventListener listener;private DatabaseReference ref;private void readFB() {
    timesRead = 0;
    if (ref == null) {
        ref = mFBDatabase.child("URL");
    }

    if (listener == null) {
        listener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                //process dataSnapshot

                timesRead++;
                if (timesRead == 2) {
                    ref.removeEventListener(listener);
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        };
    }
    ref.removeEventListener(listener);
    ref.addValueEventListener(listener);}


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 602 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信