2017-09-16 69 views
0

我想记录'Checker'的值(布尔值),但总是返回'undefined'。我的代码如下:在控制台上AngularFire2,snapshot.val返回undefined

loginUser(key: string, Checker: boolean) { 
    if (!this.loginForm.valid) { 
    *doesn't matter* 
    } else { 
    *doesn't matter* 
    ... 
    var checked = this.af.object('/Users/' + key, 
    {preserveSnapshot: true}); 
    checked.subscribe(snapshot => { 
     console.log(snapshot.key); 
     console.log(snapshot.val.Checker); 
     }); 
    } 

输出是:

*key* 
*undefined* 
+0

'val'是一个函数:'snapshot.val()。Checker' – cartant

+0

https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot#val – cartant

+0

@cartant - 如果我确实那它返回“snapshot.val不是一个函数” –

回答

0
this.af.object(`/users/${key}`, {preserveSnapshot: true}) 
    .subscribe(snapshot => { 
    let value = snapshot.val() 
    let key = snapshot.key 

注意使用template literals,您可以使用.object内反引号(模板文本)()调用直接插入变量。您应该通读angularfire2文档。