如何在Android中的服务中使用Firebase代码?

时间:2016-12-10 07:53:30

标签: android firebase-realtime-database

我正在Android中开发这个应用程序,它让我获得我存储在firebase数据库中的新闻更新。现在我想要通知我的数据库更新。为此,我尝试使用服务,以便我可以在Services的handleMessage部分中运行Firebase addValueEventListener,但是每当遇到firebase代码时我的应用程序都会崩溃。有谁知道为什么会这样,我该如何解决?

这是我的代码......

private final class ServiceHandler extends Handler {
    public ServiceHandler(Looper looper) {
        super(looper);
    }
    @Override
    public void handleMessage(Message msg) {
    try {
            Firebase ref = new Firebase(firebase_url);
            final Firebase ref_2013 = new Firebase(firebase_url + "Btech 2013" + "/posts");
            final Firebase ref_2014 = new Firebase(firebase_url + "Btech 2014" + "/posts");
            final Firebase ref_2015 = new Firebase(firebase_url + "Btech 2015" + "/posts");
            final Firebase ref_2016 = new Firebase(firebase_url + "Btech 2016" + "/posts");
   }catch (Exception e){
            Toast.makeText(NotificationService.this,"firebase and noti thrown",Toast.LENGTH_SHORT).show();
        }
 }

我的服务工作正常,如果我做一些正常的工作,如生成祝酒词,但因为我使用firebase代码崩溃

1 个答案:

答案 0 :(得分:0)

我发现我没有使用Firebase.setAndroidContext()。除了服务类之外,它在任何地方都可以正常工作(不使用setAndroidContext())所以我之前没有意识到它。

因此我们必须在使用对Firebase的任何引用之前在onCreate()或onhandleMessage()(对于Service类)中使用Firebase.setAndroidContext(),否则它可能会在某些地方崩溃,例如服务 < / p>