应该谨慎使用FirebaseDatabase.getInstance()吗?

时间:2016-08-23 19:53:03

标签: android optimization firebase firebase-realtime-database

例如,当我在android中使用SQLiteDatabase时,打开/关闭许多SQLiteDatabase助手通常不是一个好主意。相反,最好创建一种单例,确保只打开1个数据库。

假设我有一个使用静态方法的类执行大量需要DatabaseReference的Firebase操作。 例如:

static void checkIfUserIsMatched(...)
static void notifyUser(...)
static void modifyUser(...)

可以在每个方法中调用FirebaseDatabase.getInstance()吗?在每个方法中创建一个新的DatabaseReference?

或者从调用Activity传递DatabaseReference会更好吗?

static void notifyUser(mUserReference, hisUserId)

VS

static void notifyUser(myUserId, hisUserId) --> Create the reference inside method

我希望优化的是网络使用和性能。或者这一切都无所谓,firebase是否为我处理了一切?

1 个答案:

答案 0 :(得分:7)

FirebaseDatabaseDatabaseReference个对象可被视为对底层资源的相对便宜的引用。

Firebase SDK在幕后管理此类内容。只有第一次调用FirebaseData.getInstance()才会进行设置工作,后续调用(在同一个过程中)只会重复使用已经完成的操作。