Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Android 在代码中保存Firebase引用的最佳方法_Android_Variables_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 在代码中保存Firebase引用的最佳方法

Android 在代码中保存Firebase引用的最佳方法,android,variables,firebase,firebase-realtime-database,Android,Variables,Firebase,Firebase Realtime Database,我现在正在使用新的Firebase API开发我的第一个应用程序。我在代码中保存Firebase对象引用时遇到了问题,因为我不知道哪种方法是正确的 所以,情况就是这样。我有一个应用程序,我的用户可以在其中创建组,在这个组中(他们可以属于多个组),他们可以发布一些东西。在我的实际Firebase数据库中,它看起来像: { "Posts":{ "GroupKey1":{ "PostKey1

我现在正在使用新的Firebase API开发我的第一个应用程序。我在代码中保存Firebase对象引用时遇到了问题,因为我不知道哪种方法是正确的

所以,情况就是这样。我有一个应用程序,我的用户可以在其中创建组,在这个组中(他们可以属于多个组),他们可以发布一些东西。在我的实际Firebase数据库中,它看起来像:

{
    "Posts":{
            "GroupKey1":{
               "PostKey1":{
                    "text": 
                    "imageUrl":
                    "author":{
                        ...
                    }
                }
                "PostKey2":{
                    "text":
                    "imageUrl":
                    "author":{
                        ...
                    }
                }
                "PostKey3":{
                    "text":
                    "imageUrl":
                    "author":{
                        ...
                    }
                }
            }
            "GroupKey2":{
                ....
            }
        }
}
因此,当我想恢复与特定组关联的帖子时,我将执行下一个查询:

Query newQuery = FirebaseDatabase.getInstance().getReference().child("posts").child(mCurrentGroupID);
一切都很好。它起作用了,很好。但是我需要保留mCurrentGroupID字符串,将所有生命周期都保存在我的组活动和片段中。现在我正在使用bundle在代码中保持字符串的活动性,但它开始变得非常糟糕


所以,我的问题是,在代码中保持这类变量活动的最佳方法是什么?使用共享引用?仍在使用Bundle,一个静态变量,BaseActivity中的一个默认项,该项被扩展用于其他活动。

一旦您第一次收到该id,您可以将其存储在
SharedReferenceManager
中的其余位置,从
SharedReferenceManager
获取。每次从Firebase获取id时,都要不断更新该id,我会坚持让全局变量在整个应用程序中使用,这是专门针对Android应用程序的。是如何使用应用程序类保存和检索全局变量的教程

我已经考虑过在SharedReferences中保存它,但是一个用户可以有多个组,因此每次用户在一个组到另一个组之间更改时,我都需要修改此值。这就是为什么我不知道这是不是最好的方法!是的,每次用户更改组时,从firebase获取当前组id并在prefManager中更新。另一种方法是从firebase本身获取,但我认为它会再次进行网络调用。