Как я могу получить автоматические идентификаторы для получения вложенных данных в firebase, используя javascript? - PullRequest
0 голосов
/ 13 марта 2020

У меня есть вложенные данные Firebase, и в этих данных у меня есть автоматически сгенерированные идентификаторы, но мне нужно взять данные дочернего узла об этих автоматически сгенерированных идентификаторах, и я должен использовать эти идентификаторы в своем запросе. Мне нужно принять ordersTerminal / kullanicilarTerminal / userIds (автоматически сгенерированный) / orderIds (автоматически сгенерированный) / isim / username Мне нужно идти по этому пути на самом деле, но я не могу понять. Как я могу сделать? Вот моя база данных firebase:

my database

А вот мой javascript код:

function userConfig() { 

    var dataRef = firebase.database().ref('ordersTerminal').child("kullanicilarTerminal");



    dataRef.on('value', function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
        var childData = childSnapshot.val();
        console.log(childData);

        });
    });



}

1 Ответ

1 голос
/ 13 марта 2020

Чтобы получить идентификатор пользователя, вошедшего в систему в данный момент, вы можете сделать следующее:

let user = firebase.auth().currentUser; 
let uid = user.uid; 

Чтобы получить автоматически сгенерированный идентификатор, вы можете сделать следующее:

    dataRef.on('value', function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
        var childData = childSnapshot.val();
        var key = childSnapshot.key;
        console.log(childData);
        });
    }); 

Ваша ссылка находится на узле kullanicilarTerminal, если вы используете свойство key внутри forEach, вы получите следующий идентификатор 93ybLDezrCW2pJsDkZbH6IJfq03


Если 93ybLDezrCW2pJsDkZbH6IJfq03 является id текущего зарегистрированного пользователя, тогда вы можете сделать следующее:

    dataRef.child(uid).on('value', function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
        var childData = childSnapshot.val();
        var key = childSnapshot.key;
        console.log(childData);
        });
    }); 

Теперь childSnapshot.key вернет 01032020-05032020-2

Если у вас нет обоих идентификаторов, тогда Вы можете получить данные, выполнив следующие действия:

    dataRef.on('value', function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
         childSnapshot.forEach(function(orderSnapshot) { 
             console.log(orderSnapshot.key); //01032020-05032020-2
             console.log(orderSnapshot.val()); 
            }) 
          })
        });
    });

Ваша ссылка находится на узле kullanicilarTerminal, если вы используете свойство key внутри первого forEach, вы получите следующий идентификатор 93ybLDezrCW2pJsDkZbH6IJfq03, затем вы делаете другое для l oop и извлекаете второй идентификатор 01032020-05032020-2 и детали, используя val().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...