2016-08-14 10 views
0

firebaseを照会しようとしていますが、レコードが存在する場合は一意のキーにしたいがそれを得ることはできない。私のフィルタは正常に動作しますが、オブジェクトのプロパティ名が何であるか分からず、Firebaseで何かを見つけることができません。 .key()は常にエラーを返します。ここで私はここでFirebaseを照会してキーを取得する

GET /js/init.js 200 5.048 ms - 207 
 
GET /img/logo.png 200 2.376 ms - 2793 
 
{ '-KP8qXgQRaeClqzKX1Lo': { email: '[email protected]' } } 
 
GET /sent 200 7.923 ms - 8110

を返すとき、私のオブジェクトがどのように見えるのは、私のコードは、それは私が存在する場合ので、私はそのキーを必要とする

firebase.database().ref('/customers').orderByChild("email").equalTo(email).on("value", function(snapshot) { 
 
     console.log(snapshot.val()); 
 
    },function (errorObject) { 
 
     console.log("The read failed: " + errorObject.code); 
 
    });

です次のステップにそれを使用する必要があります。

答えて

0

firebase.database().ref('customers').orderByChild("email").equalTo(email).on('child_added', function(snapshot) { 
 
     console.log("Customer Key:"+snapshot.key); 
 
    });

3

child_addedを使用すると、新しく追加されたレコードを追跡し、キーを取得できます。

firebase.database().ref('customers').on('child_added', function(snapshot) { 
    console.log(snapshot.key); //This will print that unique key 
}); 
+0

私はすでにそれが作成された後、キーを取得しています。私は、レコードが存在するかどうかを確認する必要があります。レコードが存在する場合は、キーを戻します。それが存在しない場合、私は新しいレコードを作成します。電子メールは顧客オブジェクトをフィルタリングするために使用しているものです。 – user3183411

+0

ありがとうございました!あなたは正しい方向に入っています。私はそれを得ることができました。 – user3183411

+0

@ user3183411この回答が役に立ちましたら、アップしてください。それがあなたの問題を解決した場合(これはやっているようです - あなた自身のクエリがまだ必要であるという事実は問題に無関係であると思われます: 'snapshot.key'を呼び出す必要があります)、それを受け入れるために左のチェックマークをクリックしてください。 –

関連する問題