java—使用服务类从firebase获取数据

7hiiyaii  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(197)

我对android开发还比较陌生,我遇到了一个问题。我想从一个实时火力基地获取数据。但是,我希望使用服务而不是直接从活动中执行。
这是服务:

public class EventService implements IEventService {

private FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference reference = database.getReference().child("Events");

@Override
public void getEvents() {
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            ArrayList<EventsServiceResponse> eventsArrayList =
            new EventServiceResponseMapper().getEventList(snapshot);

        }
        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

}

您在上面看到的是从我的firebase获取一些事件的服务。我还创建了一个 EventServiceResponseMapper() 这只是Map HashmapArrayList<EventsServiceResponse> .
下面是活动的简化版本

public class FeedActivity extends AppCompatActivity {

private RecyclerView eventRecyclerView;

private IEventService iEventService = new EventService();
private SharedPreferences sp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_feed);
    initSetup();

        }

private void initSetup() {
    eventRecyclerView = findViewById(R.id.eventRecyclerView);
    sp = getSharedPreferences("UserInfo", Context.MODE_PRIVATE);
    iEventService.getEvents();
}}

如你所见 initSetup() 呼叫 iEventService.getEvents() 获取所有事件。
问题是我想让这些事件回到现在 FeedActivity . 我不想通过为服务创建一个具有 ArrayList<EventsServiceResponse> .
我读到了这篇文章,我找不到这个解决方案的具体答案大多数实现都是直接在活动中进行的,没有任何服务。另一个建议的解决方案是使用observable,但我无法找到任何解决方案。你怎么认为?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题