我正在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代码崩溃
答案 0 :(得分:0)
我发现我没有使用Firebase.setAndroidContext()。除了服务类之外,它在任何地方都可以正常工作(不使用setAndroidContext())所以我之前没有意识到它。
因此我们必须在使用对Firebase的任何引用之前在onCreate()或onhandleMessage()(对于Service类)中使用Firebase.setAndroidContext(),否则它可能会在某些地方崩溃,例如服务 < / p>