我们有 2 个 Android Activity ( Activity A 和 Activity B)
假设我们在 Activity A 中实例化了一个 Firebase 引用。 Activity A 还处理所有用户身份验证(Facebook、Google 和电子邮件/密码)。
Activity B 是使用 Android intent 从 Activity A 启动的,它应该使用 Firebase 引用来访问 Firebase 服务器上的一些数据。
现在我想知道将 Firebase ref 从 Activity A 发送到 Activity B 的最佳设计是什么。
使用 Java Serializable 将 Firebase 引用与 Intent bundle 在一起,并在 Activity B 中使用 intent.getExtra()
使用 Android Parcelable 将 Firebase 引用与 Intent bundle 在一起,并在 Activity B 中使用 intent.getExtra()
在 Android 服务中启动 Firebase 引用并将每个 Activity 绑定(bind)到该服务
其他。
最佳答案
执行此操作的常用方法是将数据的 URL 传递给新 Activity 。参见示例 this method来自 Firebase Android Drawing sample :
private void openBoard(String key) {
Log.i(TAG, "Opening board "+key);
Toast.makeText(BoardListActivity.this, "Opening board: "+key, Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, DrawingActivity.class);
intent.putExtra("FIREBASE_URL", FIREBASE_URL);
intent.putExtra("BOARD_ID", key);
startActivity(intent);
}
然后新 Activity 读取 URL 并构造一个新的 Firebase
引用:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
final String url = intent.getStringExtra("FIREBASE_URL");
final String boardId = intent.getStringExtra("BOARD_ID");
Log.i(TAG, "Adding DrawingView on "+url+" for boardId "+boardId);
mFirebaseRef = new Firebase(url);
确实在这些调用之间保持了身份验证状态。 Firebase SDK 为应用程序 session 维护与服务器的单一连接,每个 Firebase
引用都是一个轻量级引用。
关于java - 如何将 Firebase 引用转移到另一个 android Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34586309/