Firebase child() 与 Angularfire $firebaseObject
Firebase child() vs. Angularfire $firebaseObject
我试图了解 Firebase 何时实际将数据加载到客户端与执行 "lazy load"(仅在需要时下载数据)。原因是我在 Firebase 中保存图像 (base64)(请不要问为什么,因为它只有几百 MB)。所以有两个选择:
// With typical Firebase
var imagesRef = Ref.child('images');
// With Angularfire
var imagesObj = $firebaseObject(Ref.child('images'));
Ref
只是对我的 Firebase URL.
的引用
我知道 Angularfire 有 $loaded()
这让我觉得 Angularfire 实际上会一次性加载所有数据,并在您立即调用 $firebaseObject()
时使其可用。 正确吗?
至于使用 child()
,根据文档,我没有看到任何要捕获的 load()
事件。也许我错过了。 但是它是否将所有数据从服务器加载到客户端?
如果我有大约 500MB 的图像,我绝对不希望这种一次加载全部的情况发生。
当您在 ref 上调用 .on 时,firebase 检索数据
众所周知,所有数据都是在一块检索的(无论您调用 .on 'value' 还是 .on 'child_added'),因此您最好使用 orderByFirst / Last 对结果进行分页,或者使用 firebase util
当您实例化一个 firebaseObject/数组时,angular fire 会从实例的构造函数中调用 'value' / 'child_added',所以是的,数据被检索几乎立即(但延迟因此 $loaded() 函数)。
看看Object manager的源码,比如$firebaseObject的构造函数,很清楚
我试图了解 Firebase 何时实际将数据加载到客户端与执行 "lazy load"(仅在需要时下载数据)。原因是我在 Firebase 中保存图像 (base64)(请不要问为什么,因为它只有几百 MB)。所以有两个选择:
// With typical Firebase
var imagesRef = Ref.child('images');
// With Angularfire
var imagesObj = $firebaseObject(Ref.child('images'));
Ref
只是对我的 Firebase URL.
我知道 Angularfire 有 $loaded()
这让我觉得 Angularfire 实际上会一次性加载所有数据,并在您立即调用 $firebaseObject()
时使其可用。 正确吗?
至于使用 child()
,根据文档,我没有看到任何要捕获的 load()
事件。也许我错过了。 但是它是否将所有数据从服务器加载到客户端?
如果我有大约 500MB 的图像,我绝对不希望这种一次加载全部的情况发生。
当您在 ref 上调用 .on 时,firebase 检索数据
众所周知,所有数据都是在一块检索的(无论您调用 .on 'value' 还是 .on 'child_added'),因此您最好使用 orderByFirst / Last 对结果进行分页,或者使用 firebase util
当您实例化一个 firebaseObject/数组时,angular fire 会从实例的构造函数中调用 'value' / 'child_added',所以是的,数据被检索几乎立即(但延迟因此 $loaded() 函数)。
看看Object manager的源码,比如$firebaseObject的构造函数,很清楚