在哪里放Firebase.setAndroidContext()函数

我正在尝试使用Firebase和Android。
我有一个RegisterActivity和一个MainActivity 。 我目前的stream程是 – 从MainActivity开始 – 检查用户是否注册,如果没有,调用RegisterActivityRegisterActivity后调用MainActivity

我无法放置Firebase.setAndroidContext()调用。
我有两个问题:

  1. 我应该只在Application调用这个函数,还是在每个Activty调用一次?
  2. 如果问题1的答案只有一次,那么我应该把它放在哪里?

谢谢大家,Giora。

Solutions Collecting From Web of "在哪里放Firebase.setAndroidContext()函数"

引用(第4步) Firebase快速入门文档 :

Firebase库必须使用Android Context初始化一次。 这必须在创build或使用任何Firebase参考之前进行。

创buildMyApplication.java

 public class MyApplication extends android.app.Application { @Override public void onCreate() { super.onCreate(); //Previous versions of Firebase Firebase.setAndroidContext(this); //Newer version of Firebase if(!FirebaseApp.getApps(this).isEmpty()) { FirebaseDatabase.getInstance().setPersistenceEnabled(true); } } } 

并更新您的AndroidManifest.xml 名称参数值:

 <application android:label="@string/app_name" android:name=".MyApplication"> ... </application> 

如Firebase 示例应用程序中所示 ,您应该将其放置在您的Application

 package com.firebase.androidchat; import com.firebase.client.Firebase; /** * @author Jenny Tong (mimming) * @since 12/5/14 * * Initialize Firebase with the application context. This must happen before the client is used. */ public class ChatApplication extends android.app.Application { @Override public void onCreate() { super.onCreate(); Firebase.setAndroidContext(this); } } 

资源


Firebase.getAndroidContext()

在设置应用程序上下文之后,您可以在任何需要的地方使用它。 你可以随时随地取回它。 我也build议使用Firebase.getAndroidContext()而不是将其存储到variables,以防止MemoryLeaks

我不知道FireBase,但我知道Android .. Context是关于应用程序环境的全局信息。 您的Activity是一个Context所以我非常确定Firebase.getAndroidContext()检索您的应用程序ContextgetApplicationContext() ,因为这似乎是明智的。

我应该只在应用程序中调用这个函数,还是在每个Activity中调用一次?

只要你需要一个Context尊重FireBase代码就可以调用它 – 但是我认为如果你在你的Application

如果问题1的答案只有一次,那么我应该把它放在哪里?

如果不是一次? 你在哪里打电话? 我想你会打电话给你需要的任何Context正确吗? 所以不pipe问题1的答案如何,但你可以随时在Class.thisgetBaseContext()View.getContext()