gpt4 book ai didi

java - 如何再次从 firebase 数据库中请求数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:02:00 24 4
gpt4 key购买 nike

我有一个带有 Swipe-To-Refresh 的应用程序布局。

当您在滑动刷新布局中向上滚动时,数据将从互联网刷新。 (对于那些不知道的人)

我的数据源是 Firebase。

在我的应用程序中,如果用户未连接,则会显示网络错误消息,然后在打开互联网后,它不会获取数据。

你如何从我的数据库中再次获取数据。

代码如下:

protected void onCreate(Bundle savedInstanceState) {

...

mFirebaseDatabase = FirebaseDatabase.getInstance();
// my database

mNewsDatabaseReference = LoginActivity.mFirebaseDatabase.getReference()
.child("data").child("news");
// my database reference

// my ChildEventListener
mNewsChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {

// my data
News news = dataSnapshot.getValue(News.class);

// add the news to the top of my ArrayAdapter
myAdapter.insert(news, 0);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
@Override
public void onCancelled(DatabaseError databaseError) {}
};

// my OnRefreshListener
mySwipeRefreshLayout.setOnRefreshListener(
new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {

// what Should I do in here to request the data again?!

// I know that I should empty my adapter first then request the data
myAdapter.clear();

}
}
);
}

最佳答案

使用firebase realtime-database时,不需要再做request。一旦数据发生变化,它会自动为您获取数据,并且您的一个监听器将被调用。

您的 onChildChanged() 事件将在任何时候 news 子节点被修改时触发,包括对子节点后代的任何修改。

要启用离线功能,请不要忘记使用 setPersistenceEnabled(true)

查看 documentation了解更多信息

关于java - 如何再次从 firebase 数据库中请求数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41783238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com