在代码中保存Firebase参考的最佳方法

时间:2016-09-22 07:58:51

标签: android variables firebase firebase-realtime-database

我现在正在使用新的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 String保持我的组活动和片段内的所有生命周期。现在我正在使用bundle来保持String在代码中保持活着,但它开始真的很有意思。

所以,我的问题是,在代码中保持这种变量的最佳方法是什么?使用SharedPreferences?仍在使用bundle,一个静态变量,一个BaseActivity中的默认项目,该项目已针对其余活动进行了扩展......

希望有人能帮助我!谢谢大家!

2 个答案:

答案 0 :(得分:2)

我会坚持要保留全局变量,以便在Application类中的整个应用程序中使用,这是专门针对Android的应用程序。 Here是一个如何使用Application类

保存和检索全局变量的教程

答案 1 :(得分:1)

第一次收到该ID后,您可以将其存储在SharedPreferenceManager,其余地方从SharedPreferenceManager获取。每次从Firebase获取时都会继续更新该ID。