2

我刚刚尝试存储data:image在 Firebase 中。

测试的图像文件大小小于 500kb,只有 1 张图像。

存储和检索图像还可以,但是在更新其他值时text变得非常慢。

每个字母更改几乎延迟 2 分钟。

任何想法?

**如果我直接使用http://www.google.com/image.png就可以了。

更新

我创建了一个带有描述的 plunker,请查看 http://plnkr.co/edit/lRy5vCbu0RXR2pEPKC7y?p=preview

4

1 回答 1

4

每次更改字母时,您都在检索数据库中的每个图像。这是因为您已将 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/');

});

查看这篇关于非规范化的文章了解一些背景知识。

于 2013-08-04T18:50:21.830 回答