2017-11-18 115 views
1

我在我的Ionic 3應用程序中顯示一些Firebase數據時遇到問題。下面是我的組件相關的代碼(ABCDEF部分只是針對特定用戶的主要替補):我在做什麼錯誤顯示數據? - Ionic 3&Firebase

var ref = firebase.database().ref('/profiles/abcdef/'); 
this.viewProfile = ref.once("value") 
    .then(function(snapshot) { 
    var firstName = snapshot.child("firstName").val(); 
    var lastName = snapshot.child("lastName").val(); 
    var orgName = snapshot.child("orgName").val(); 
    console.log(firstName+' '+lastName+' works at '+orgName); 
    }); 

這裏就是我在視圖:

{{viewProfile.firstName}} 

沒有錯誤,根本不算什麼顯示器。有任何想法嗎?

+0

您是否檢查控制檯?名字是否打印? –

+0

嘗試添加異步{{viewProfile.firstName | async}} –

+0

是的,我應該提到 - 控制檯確實顯示了所有的變量,但我無法在頁面模板本身中正確顯示。不幸的是,添加異步並沒有解決這個問題。 – Nick

回答

0

你需要循環的snapshot獲取數據

試試這個

var ref = firebase.database().ref('/profiles/abcdef/'); 
ref.once("value") 
    .then(function(snapshot) { 
     snapshot.forEach(function(data) { 
      this.viewProfile = data.val(); 
     } 
}); 
+0

事實上,snapshot.child(「firstName」).val()確實可以在控制檯中顯示每個變量,就像您的解決方案一樣。但是,它們都不能在頁面模板中顯示數據。 – Nick

+0

你需要'async'管道。請顯示代碼如何完成。 – Hareesh

+0

@PrithiviRaj建議它 – Hareesh

1

你非常接近@Hareesh:

var ref = firebase.database().ref('/profiles/abcdef/'); 
    ref.on('value' , profileSnapshot => { 
       this.viewProfile = profileSnapshot.val(); 
    }); 

{{viewProfile.firstName}} 

(不需要異步)似乎工作。

謝謝!!!

相關問題