使用Android处理Firebase引用的最佳方式

Ant*_*ony 6 java optimization android firebase

当您在Android应用中处理Firebase数据(读取,写入...)时,您需要获取firebase引用,然后才能处理数据.

由于Firebase引用是一个JSON树,如果您指向树根,则可以始终访问子项,与深度无关.

问题:从内存和延迟角度来看,在代码中处理此引用的最佳方法是什么?

    • C1
      • C10
      • C11
    • C2
      • C21

1 /创建一个静态Firebase引用应用程序中的根.

MyApplication.getFirebaseRootRef().chid(C1).chid(C11).setValue(...); 
Run Code Online (Sandbox Code Playgroud)

2 /为孩子C11创建一个新的firebase ref

Firebase ref = new Firebase("https://your.firebaseio.com/C1/C11");
ref..setValue(...);
Run Code Online (Sandbox Code Playgroud)

3 /混合动力车

Firebase ref = new Firebase("https://your.firebaseio.com");
ref.child(C1).child(C11).setValue(...);
Run Code Online (Sandbox Code Playgroud)

4 /混合2

Firebase ref = new Firebase("https://your.firebaseio.com").child(C1).child(C11);
ref.setValue(...);
Run Code Online (Sandbox Code Playgroud)

性能有什么不同吗?

也许你可能有一些关于可读性和维护的建议?

Fra*_*len 6

Firebase查询和引用是轻量级对象.繁重的工作是在幕后由Firebase SDK本身内部(并由其管理)的类完成的.

因此,您提出的任何方法之间的性能都不会有显着差异.

个人偏好如下

我通常会在每个活动中保留一个参考作为成员.

class MainActivity extends AppCompatActivity {
    Firebase mRef;
Run Code Online (Sandbox Code Playgroud)

如果我有更多的主要列表类型,我将为这些添加成员:

class MainActivity extends AppCompatActivity {
    Firebase mRef;
    Firebase mUsersRef;
    Firebase mPostsRef;

    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(...);
        ...
        mRef = new Firebase("https://yours.firebaseio.com");
        mUsersRef = mRef.child("users");
        mPostsRef = mRef.child("posts");
        ...
    }
Run Code Online (Sandbox Code Playgroud)

通过在每个活动中放置所有内容,这些内容都非常独立.