使用Firebase开发Android应用时,我们会执行以下操作来读取或写入Firebase实时数据库:
Line 1: FirebaseDatabase database = FirebaseDatabase.getInstance();
Line 2: DatabaseReference myRef = database.getReference("A").child("B").child("C");
Line 3: myRef.setValue(50);
在上面的例子中,我们正在编写' 50'进入" A / B / C"的位置,但是如果在上一次写入操作之后,我想写到另一个位置(让我们说" A / D / E& #34;),在同一个文件下的另一个地方再次写入1~3行是一种良好的做法(请参阅下面的方法1'或者我应该写第2~3行) ,自" FirebaseDatabase数据库"已经在第1行宣布了(见'方法2'下面)?
方法1:
Line 1: FirebaseDatabase database1 = FirebaseDatabase.getInstance();
Line 2: DatabaseReference myRef1 = database1.getReference("A").child("B").child("C");
Line 3: myRef1.setValue(50);
...
Line 4: FirebaseDatabase database2 = FirebaseDatabase.getInstance();
Line 5: DatabaseReference myRef2 = database2.getReference("A").child("D").child("E");
Line 6: myRef2.setValue(60);
方法2:
Line 1: FirebaseDatabase database = FirebaseDatabase.getInstance();
Line 2: DatabaseReference myRef1 = database.getReference("A").child("B").child("C");
Line 3: myRef1.setValue(50);
...
Line 4: DatabaseReference myRef2 = database.getReference("A").child("D").child("E");
Line 5: myRef2.setValue(60);
我的问题是,上述哪种方法会带来更好的表现?为每次写入操作多次创建FirebaseDatabase.getInstance()可以提高性能(因此方法1更好)?或者它会使性能变差(因此方法2更好)?
谢谢!
答案 0 :(得分:2)
看看这个answer。只有第一个getInstance()
能够真正发挥作用。之后,如果每次getInstance()
或重复使用相同的实例,则没有性能增益/损失。 Firebase将在后台优化工作。