Java 如何将Firebase引用转移到另一个android活动
我们有两个Android活动(活动A和活动B) 假设我们在活动a中实例化了一个Firebase引用。活动a还处理所有用户身份验证(Facebook、Google和电子邮件/密码) 活动B使用Android意图从活动A开始,应该使用Firebase引用访问Firebase服务器上的一些数据 现在我想知道将Firebase ref从活动A发送到活动B的最佳设计是什么Java 如何将Firebase引用转移到另一个android活动,java,android,firebase-authentication,google-authentication,facebook-authentication,Java,Android,Firebase Authentication,Google Authentication,Facebook Authentication,我们有两个Android活动(活动A和活动B) 假设我们在活动a中实例化了一个Firebase引用。活动a还处理所有用户身份验证(Facebook、Google和电子邮件/密码) 活动B使用Android意图从活动A开始,应该使用Firebase引用访问Firebase服务器上的一些数据 现在我想知道将Firebase ref从活动A发送到活动B的最佳设计是什么 使用Java Serializable将Firebase引用与intent捆绑在一起,并在活动B中使用intent.getExtra(
通常的方法是将数据的URL传递给新活动。例如,请参见: 然后,新活动读取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为应用程序会话维护与服务器的单一连接,每个
Firebase
引用都是一个轻量级引用。为什么要跨活动发送Firebase引用?这对你有什么用处?也发布一些相关代码。我将在下班后用一些相关代码更新我的帖子。为什么要跨活动发送firebase参考?这对你有什么用处?在我的主要活动(活动A)中,我有一个存储在firebase中的图像库。您可以在那里添加图像、编辑图像等。在我的第二个活动(活动B)中,您可以使用相同的图像在Android surfaceview中合成图像,并将合成保存到Firebase。但要将图像添加到surfaceview,活动B还需要一个图像库(与活动B中的库功能不同)。因此,活动B还需要访问Firebase DB@在活动B中创建一个新的firebase引用,并使用该引用访问firebase数据。这不会产生任何额外的开销。这将是理想的。但是身份验证呢。如果在活动A中使用Firebase ref对用户进行身份验证,那么在使用不同的Firebase ref实例(在活动B中实例化)时,是否仍会对用户进行身份验证?附录-由于我无法使用Firebase()(不可用),因此,我检索了已创建的Firebase实例(在主活动中),FirebaseApp-FirebaseApp=FirebaseApp.getInstance(“Firebase”)
然后创建一个新的引用FirebaseDatabase.getInstance(firebaseApp.getReference)(新的URL)代码>
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);