我们有2项Android活动(活动A和活动B)
假设我们在活动A中实例化了Firebase引用。活动A还处理所有用户身份验证(Facebook,Google和电子邮件/密码)。
活动B(使用Android意图从活动A启动)应使用Firebase参考来访问Firebase服务器上的某些数据。
现在我想知道将Firebase ref从活动A发送到活动B的最佳设计是什么。
使用Java Serializable将Firebase引用与intent捆绑在一起,并在Activity B中使用intent.getExtra()
使用Android Parcelable将Firebase参考与意图捆绑在一起,并在活动B中使用intent.getExtra()
在Android服务中启动Firebase引用并将每个活动绑定到该服务
其他。
答案 0 :(得分:3)
执行此操作的常用方法是将数据的URL传递给新活动。例如,请参阅this method:
中的Firebase Android Drawing sampleprivate 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);
}
然后新活动会读取网址并构建新的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为应用程序会话维护与服务器的单一连接,并且每个Firebase
引用都是一个轻量级引用。