2016-10-17 3 views
0

Я пытаюсь получить ключ пользователя на основе электронной почты ребенка, который в этом случае является [email protected] Я пробовал много способов, но не смог получить способ извлечь ключ из записи. Я хочу, чтобы получить значение KKTxEMxrAYVSdtr0K1NH, ниже снимок базы данныхКак получить значение родителя на основе дочернего элемента

database

В настоящее время if((childSnap.val().role) == "student") { возвращает мне студент и snap.key() возвращает меня «User». Как получить KTxEMxrAYVSdtr0K1NH?

ответ

1

Какой метод вы используете для извлечения узла? Если вы используете «child_added», вы можете использовать: childSnap.key

Если вы используете значение «значение», то ваши ссылки - это ключи в объекте ответа. Таким образом, вы можете использовать:

for (var key in childSnap.val()) { 
console.log(key) 
} 

или

childSnap.forEach(...) 

Вот пример clearify (проверьте консоль): https://jsfiddle.net/qrLvbok4/1/

Существует разница между значением и child_added, проверьте список для детской секции мероприятий: https://firebase.google.com/docs/database/web/lists-of-data

1
var ref = firebase.database().ref('Users'); 
ref.on('child_added', function(snap) { 
    // You can retrieve the parent key by calling snap.key 
    console.log(snap.key); 
}); 

UPDATE (Получить родительский ключ по электронной почте):

var ref = firebase.database().ref('Users').orderByChild('email').startAt('[email protected]').endAt('[email protected]'); 
ref.once('value', function(snap) { 
    console.log(Object.keys(snap.val())[0]); 
}); 
+0

привет, спасибо, что ответили. Он работает, но в настоящее время он записывает все ключи, но мне нужен только конкретный ключ, который является «KTxEMxrAYVSdtr0K1NH». Любая идея, как я могу получить эту информацию, учитывая, что я могу получить электронное письмо? – purplewind

+0

@purplewind Я обновил свой ответ, см. «Получить родительский ключ по электронной почте». – Elias

Смежные вопросы