我刚刚尝试存储data:image
在 Firebase 中。
测试的图像文件大小小于 500kb,只有 1 张图像。
存储和检索图像还可以,但是在更新其他值时text
变得非常慢。
每个字母更改几乎延迟 2 分钟。
任何想法?
**如果我直接使用http://www.google.com/image.png就可以了。
更新
我创建了一个带有描述的 plunker,请查看 http://plnkr.co/edit/lRy5vCbu0RXR2pEPKC7y?p=preview
我刚刚尝试存储data:image
在 Firebase 中。
测试的图像文件大小小于 500kb,只有 1 张图像。
存储和检索图像还可以,但是在更新其他值时text
变得非常慢。
每个字母更改几乎延迟 2 分钟。
任何想法?
**如果我直接使用http://www.google.com/image.png就可以了。
更新
我创建了一个带有描述的 plunker,请查看 http://plnkr.co/edit/lRy5vCbu0RXR2pEPKC7y?p=preview
每次更改字母时,您都在检索数据库中的每个图像。这是因为您已将 angularFire 实例同步到整个图像层次结构。由于 angularFire 使用 on('value'),因此它会在每次更改时下载整个图像列表。
您可以通过使用 angularFireCollection 来避免这种情况,它依赖于 child_added/updated/removed,因此它会在每个孩子发生变化时同步每个孩子,而不是在任何孩子发生变化时同步所有图像。
更好的解决方案是将您的图像数据拆分到单独的路径并在 images/ 中放置某种更新计数器,以便您可以在新图像更改时随时获取它。这些甚至需要实时同步吗?图像是否经常被“编辑”?
var app = angular.module('plunker', ['firebase']);
app.controller('MainCtrl', function($scope, angularFire) {
$scope.name = 'World';
$scope.images = angularFireCollection('https://datauri.firebaseio-demo.com/images/');
});
查看这篇关于非规范化的文章了解一些背景知识。