2017-05-12 8 views
0

私は人々が彼らの血液型をfirebaseに加えることができるイオン2アプリを開発しました。選択されたオプションに従って火災基地からデータを受信する方法は?

私はfirebaseからそのデータを受け取るための検索ページを実装したいと思います。例えば、誰かがB Rh +血液型を検索したいだけでそのラジオボタンを選択し、検索ボタンをクリックするとB Rh + bloodsそれらをリストアップしてください。ここ

は私の検索htmlです:

<ion-list> 
    <ion-item> 
    <ion-label>Blood Type</ion-label> 
    <ion-select [(ngModel)]="bloodtype"> 
     <ion-option value="ap">A Rh+</ion-option> 
     <ion-option value="an">A Rh-</ion-option> 
     <ion-option value="bp">B Rh+</ion-option> 
     <ion-option value="bn">B Rh-</ion-option> 
     <ion-option value="abp">AB Rh+</ion-option> 
     <ion-option value="abn">AB Rh-</ion-option> 
     <ion-option value="zp">0 Rh+</ion-option> 
     <ion-option value="zn">0 Rh-</ion-option> 
    </ion-select> 
    </ion-item> 

    <ion-item> 
    <ion-range [(ngModel)]="range"> 
    <ion-icon range-left small name>0km</ion-icon> 
    <ion-icon range-right small name>100km</ion-icon> 
    </ion-range> 
</ion-item> 

<button ion-button full icon-left (click)="presentLoading()"> 
    <ion-icon name="search"></ion-icon> 
    Search 
</button> 
</ion-list> 

、ここでは私のsearch.tsです:

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { LoadingController } from 'ionic-angular'; 




@Component({ 
    selector: 'page-search', 
    templateUrl: 'search.html' 
}) 
export class SearchPage { 

    constructor(public navCtrl: NavController,public loadingCtrl: LoadingController) {} 

    ionViewDidLoad() { 
    console.log('Hello SearchPage Page'); 
    } 

    presentLoading() { 
    let loader = this.loadingCtrl.create({ 
     content: "Please wait...", 
     duration: 3000 
    }); 
    loader.present(); 
    } 

} 

私は検索バーを使用して、この参照this.bloodRef = firebase.database().ref('/bloods');してデータを受信しようとしましたが、検索バーを使用することです人々は "brh +"や "b"などと入力できるので機能しません。

ファイアベースの階層:

---bloods (id) 

      ------ blood-type: "B Rh+" 
+0

あなたは何を意味するのですか?ユーザーがオプション "bp"を選択した場合、blood_type "B Rh +"のすべてのレコードを取得したいが、blood_type "B"を持つレコードも取得する。 – Escobar5

+0

@ Escobar5最初のものは、blood_type "B Rh + –

答えて

1

あなたはORDERBYとequalTo機能を持つアイテムをフィルタリングすることができます。

var results = []; 
this.bloodRef.orderByChild('blood-type').equalTo(this.bloodtype).once("value") 
    .then(function(snapshot) { 
    //snapshot.val() is the object 
    }); 
関連する問題