Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Firebase引用转移到另一个android活动_Java_Android_Firebase Authentication_Google Authentication_Facebook Authentication - Fatal编程技术网

Java 如何将Firebase引用转移到另一个android活动

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(

我们有两个Android活动(活动A和活动B)

假设我们在活动a中实例化了一个Firebase引用。活动a还处理所有用户身份验证(Facebook、Google和电子邮件/密码)

活动B使用Android意图从活动A开始,应该使用Firebase引用访问Firebase服务器上的一些数据

现在我想知道将Firebase ref从活动A发送到活动B的最佳设计是什么

  • 使用Java Serializable将Firebase引用与intent捆绑在一起,并在活动B中使用intent.getExtra()

  • 使用Android Parcelable将Firebase引用与intent捆绑在一起,并在活动B中使用intent.getExtra()

  • 在Android服务中启动Firebase引用,并将每个活动绑定到该服务

  • 还有别的


  • 通常的方法是将数据的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);