如何仅从Relatime Firebase数据库获取更新的对象? [英] How to fetch only updated object from Relatime Firebase Database?

查看:51
本文介绍了如何仅从Relatime Firebase数据库获取更新的对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Firebase实时数据库的新手,不知道如何仅从表中获取最近更新的对象.

I am new to Firebase Real-time Database and don't have an idea that how to fetch only the recent updated object from the table.

我尝试使用"ChildEventListener",但是当我第一次初始化Listener时,它会从数据库中获取最后一行. 如果未更新,则不应获取它. 我仅在更新或新添加对象时才需要它. 我已经做到了,

I have tried using "ChildEventListener" but when I initialize the Listener for the first time it fetches the last row from the database. It should not be fetched if it was not updated. I want object only when it is updated or newly added. I have done this,

databaseReference.child("last_chat").orderByChild("s_id").equalTo(preference.getUserData().getId()).limitToLast(1).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Log.e("dataSnapShot", dataSnapshot.toString() + "      " + s);
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            Log.e("dataSnapShotChagned", dataSnapshot.toString() + "      " + s);

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {
            Log.e("dataSnapShotRemoved", dataSnapshot.toString());

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.e("onCalcnelle", databaseError.toString());
        }
    });

谢谢.

推荐答案

我已经解决了这个问题.

I have solved the issue.

我只需要将代码放入OnChildChanged内,而不是将代码放入OnChildAdded.

I just need to put my code inside the OnChildChanged instead of putting my code in OnChildAdded.

首次运行应用程序时显示dataSnapShot日志,而一旦我更改或更新对象dataSnapShotChagned则显示.

Log dataSnapShot shown when first running the application, whereas as soon as I change or update object dataSnapShotChagned is shown.

因此对我有用,每次在初始化侦听器时都会调用OnChildAdded方法,其中仅当特定对象发生更改时才调用OnChildChanged方法.

Thus it worked for me, OnChildAdded method is called every time while initializing the listener where OnChildChanged method is called only when there is a change in a particular object.

非常感谢您的帮助.

这篇关于如何仅从Relatime Firebase数据库获取更新的对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆