【问题标题】:Get value from Firebase Database Object从 Firebase 数据库对象中获取价值
【发布时间】:2018-06-23 13:32:47
【问题描述】:

我只是想从我的 firebase 数据库中获取用户名值并将其显示在控制台日志语句中,但我在执行此操作时遇到了麻烦。这是我目前所拥有的。

现在它所做的只是获取对象而不是实际的子值。如何获取子值以便显示它。

getUsername.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams} from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase, FirebaseObjectObservable, FirebaseListObservable  } from 'angularfire2/database';

@IonicPage()
@Component({
  selector: 'page-profile-setup',
  templateUrl: 'profile-setup.html',
})
export class ProfileSetupPage {
  profileData: FirebaseObjectObservable<Profile>

  constructor(private afAuth: AngularFireAuth, private afDatabase: AngularFireDatabase) {

  showUsername($event) {
    let data = this.profileData = this.afDatabase.object(`profile/`)
    console.log(data.username);
  }
 }
}

【问题讨论】:

  • 您需要以某种方式使用对象的 ID 来定位用户名。这是不可避免的。您可以将其添加到查询中,也可以在到达对象时使用它。
  • 好的,如果我添加配置文件/WhateverIDI,我将如何获得实际的用户名值?
  • 执行查询并记录其结果。如何找到您要查找的字段应该很明显。我根本不使用 Angular,所以我不知道具体细节。
  • 好的,感谢您的帮助!

标签: angular typescript firebase firebase-realtime-database


【解决方案1】:

定义名为user(username, age)的模型(接口)并导入getUsername.ts。您还需要将唯一的userid 作为参数传递。

showUsername($event) {
    let data = this.afDatabase.object(`profile/`+<string>userid);
    data.valuechanges().subscribe( user => console.log(user.username));
  } 

【讨论】:

    【解决方案2】:

    您必须先订阅数据并将其放入对象中才能使用数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-03
      • 2017-07-04
      • 2018-11-30
      • 2016-12-10
      相关资源
      最近更新 更多