2016-07-26 22 views
4

firebaseデータベースのuserkeyで特定の値を検索しようとしていますが、問題が発生しています。firebaseデータベースの特定のキー値を持つ要素オブジェクトを検索します。

ユーザーキー11112を渡した場合、11113を渡すと2つのレコードが来て、1つのレコードが来るようにフェッチしたいと思います。私は以下のコードを試みたが、エラーを取得しているにもかかわらず

enter image description here

。 firebaseスクリプト: -

<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.15/firebase.js'></script> 

コード:

var ref = new Firebase('fire-base-url'); 
ref.orderBy("userkey").equalTo("11112").once("value", function(snapshot) { 
    console.log(snapshot.key); 
}); 

コンソールエラー:

Uncaught TypeError: ref.orderBy is not a function 
+0

どのようなエラーが表示されますか? – gcampbell

答えて

3

あなたのコードには二つの問題があります。 @theblindprophetは、すでに述べたように

  1. 、あなたの代わりにorderByorderByChildを使用する必要があります。
  2. 古いFirebase SDKを使用しています。 new firebase consoleで作成されたアプリケーションでは機能しません。

    あなたがコンソールに行くことによって、あなたの設定の詳細情報を取得することができますそして、あなたは

    var config = { 
        apiKey: "", 
        authDomain: "", 
        databaseURL: "", 
        storageBucket: "", 
        }; 
        firebase.initializeApp(config); 
    

    を使用してアプリケーションを初期化する必要があります

    <script type='text/javascript' src='https://www.gstatic.com/firebasejs/3.1.0/firebase.js'></script> 
    

    で新しい3.1 firebase SDKを使用することを確認してください。アプリケーション名をクリックしてAdd Firebase to your Web appを押します。

    refオブジェクトを取得するには、コードが必要です。

    var ref = firebase.database().ref();

完全な作業例を表示するには、このjsFiddleで見てください。

+1

FIREBASE WARNING:不特定のインデックスを使用しています。より良いパフォーマンスのためのセキュリティルール 警告メッセージが表示されるので、 –

+0

@bhaskarbhattに警告が表示されます。あなたのデータベースルールに '' .indexOn ":" author "'を追加することで修正できます。データベース - >ルール)。私はちょうど私のアプリケーションでそれを追加したし、あなたは再びjsfiddleでそれを見ることはありません。 – adolfosrs

2

あなたのエラー:

Uncaught TypeError: ref.orderBy is not a function

は、関数を見つけることができないことを語っていますorderByそれは存在しないからです。

あなたはorderByChildを探しています。

var ref = new Firebase('fire-base-url'); 
ref.orderByChild("userkey").equalTo("11112").once("value", function(snapshot) { 
    console.log(snapshot.key); 
}); 

参考:orderByChild and equalTo

+0

コンソールでエラーメッセージが表示される "Uncaught TypeError:ref。orderByChildは関数ではありません " 私は上記のfirebase.jsを使用しています それは防止されていますか? –

+0

非常に古いバージョンを使用しています。' ' – theblindprophet

+0

あなたは 'https:// .firebaseio.com /'新しいFirebase'の中で – theblindprophet

0

uid値のスナップショットを取得します。次に、ユーザーキーと渡した検索パラメータを比較します。

var rootRef = new Firebase('fire-base-url'); 
var userRef = rootRef.child(user.uid); 
userRef.on('value', function(snapshot){ 
    var myDbKey = snapshot.child("userkey"); 
    if (mySearchKey === myDbKey) { 
    ... 
    } 
}); 
関連する問題