2017-10-09 7 views
0

ユーザー認証後にfirebaseにユーザー入力を送信しようとしています.IonicFrameworkを使用しています。これは私が試みたものです。認証後にfirebaseにユーザー入力を送信できません

エラーが未知(約束しています):エラー:Reference.childが失敗しました:最初の引数は無効なパス= 'profile/$ {auth.uid}'でした。

typescriptファイル:

import { Component,ViewChild } from '@angular/core'; 
import { IonicPage, NavController, NavParams } from 'ionic-angular'; 
import {AngularFireAuth} from 'angularfire2/auth'; 
import {AngularFireDatabase} from 'angularfire2/database'; 
import { TabsPage } from '../tabs/tabs'; 

/** 
* Generated class for the FpPage page. 
* 
* See https://ionicframework.com/docs/components/#navigation for more info on 
* Ionic pages and navigation. 
*/ 

@IonicPage() 
@Component({ 
    selector: 'page-fp', 
    templateUrl: 'fp.html', 
}) 
export class FpPage { 

    @ViewChild('uname') uname; 

    constructor(private fire:AngularFireAuth,private db :AngularFireDatabase,public navCtrl: NavController, public navParams: NavParams) { 
    } 

    createProfile(){ 

this.fire.authState.take(1).subscribe(auth => { 

this.db.list('profile/${auth.uid}').push(this.uname) 
.then(() => this.navCtrl.push('TabsPage')) 


}) 


    } 

    ionViewDidLoad() { 
    console.log('ionViewDidLoad FpPage'); 
    } 

} 

HTML:

<ion-content padding> 

<ion-item> 
    <ion-label floating>Username</ion-label> 
    <ion-input type="username" #uname></ion-input> 
</ion-item> 



<button ion-button clear block (click)="createProfile()">Set Username</button> 

</ion-content> 

答えて

0

あなたのコードに誤りがあります。 ``で使用されているテンプレートリテラルを使用しようとしており、文字列パラメータを使用することができますが、一般的な文字列( '')を使用しています。

this.db.list('profile/${auth.uid}').push(this.uname)

へ:

あなたのコードを解決するために、あなたのコード変更すべきテンプレートリテラルについての詳細なドキュメントのために

this.db.list(`profile/${auth.uid}`).push(this.uname)

MDN Template Literals

+0

感謝を見て私はエラーが修正されたと思うが、私は今もう一つ持っていた:/ Error:Reference.push f ailed:最初の引数にはプロパティの関数が含まれています – rektandlove

+0

@rektandlove私はあなたのプロジェクトにアクセスすることができないので、私はそれをデバッグすることはできません。エラーは 'this.uname'がオブジェクトフィールドとしての機能を持っていると言います。それは@ViewChildデコレータが確実にやっていることです。コレクションに保存するプロパティを持つオブジェクトを作成します。 '... push({name:this.uname.name、otherField:this.uname.otherField})... ' –

+0

ngmodelを使用していただきありがとうございますhtmlの – rektandlove

関連する問題