2016-07-25 68 views
2

我正在使用AngularFire和我的Ionic項目。我將上傳的用戶圖像轉換成firebase中的base64字符串。請注意:每張圖片只需約60-150 KB。另外每個用戶只能有9個圖像。Firebase異步加載陣列圖像

我目前正面臨一個問題,當用戶配置文件被訪問時,圖像將無法加載,直到所有的圖像被提取。下面是從獲取圖像火力地堡的數據陣列..正如你所看到的數據只傳遞給加載

return $firebaseArray(API.photos.child(userKey)).$loaded(); 

$裝上$控制器的服務:返回其解決的承諾時,從數據庫中下載了初始陣列數據 。該承諾解析爲 $ firebaseArray。

我基本上需要的是被添加到NG重複每個圖像到達時,而不是等待整批。我怎樣才能做到這一點還是有什麼辦法

*注:返回數據包括base64strings

回答

1

陣列的FYI火力地堡現在有file storage所以你不必這樣做。但是好的,還想用base64嗎?

你可以做這樣的事情:

// get user 
$scope.user = {name: 'bob', prof_imgs: [43, 44]}; 
// create map to store images 
$scope.img_map = {}; 

// download each image individually and asynchronously 
user.prof_imgs.forEach(function(id){ 
    ref.child('images/'+id).once("value", function(data) { 
    $scope.img_map[id] = data; 
    }); 
}); 

// display with angular 
<img ng-repeat="id in user.prof_imgs" 
    data-ng-src="data:image/png;base64,{{img_map[id]}}" 
    ng-if="img_map[id]"/>