基本上,我的应用程序的功能之一是登录,从地图上选择一家酒馆,然后为它提供几个不同类别的评分。
我需要Firebase的原因是每个用户可以为每个发布者评分一次,并且因为每个发布者都必须将用户给他们的评分存储在某个地方。
我要实现的目的是获得ArrayList<Pub>
并在程序的整个过程中使用它,并且当数据更改时,它会在数据库中更新。
我无法解决的问题是如何随时在侦听器外部访问数据(如代码所示)。如果数据在onDataChange方法中,我可以得到所有数据,但是我觉得我的操作在那儿非常有限。
public class PubSetup {
public ArrayList<Pub> pubs;
FirebaseDatabase database;
DatabaseReference myRef;
public PubSetup(){
pubs = new ArrayList<Pub>();
database = FirebaseDatabase.getInstance();
myRef = database.getReference("pubsData");
AddPubs();
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});