Как вернуть / отобразить имена домашней работы, когда CompletionStatus имеет значение «нет»? - PullRequest
0 голосов
/ 29 марта 2019

  function readHomework(agent){

    return admin.database().ref('Homework').once('value').then((snapshot) => {
      const value = snapshot.child('hw3/CompletionStatus').val();
      const hwName = snapshot.child('hw3/Name').val();
      const dateLine = snapshot.child('hw3/Date').val();
      
      agent.add("You have " +hwName+ " due on " +dateLine+ ". Completion status is " +value+ ".");
      
    });

  }

Я хочу отобразить все имена домашних заданий, когда CompletionStatus имеет значение «нет».

Я могу жестко закодировать только конкретный chld, который я хочу отобразить ... но мне нужно, чтобы он был динамическим, и когда пользователь спрашивает, какая домашняя работа есть, он возвращает имя домашней работы, если CompletionStatusэто «нет».

Это моя база Firebase:

База Firebase

1 Ответ

0 голосов
/ 29 марта 2019

Измените это:

    return admin.database().ref('Homework').once('value').then((snapshot) => {
  const value = snapshot.child('hw3/CompletionStatus').val();
  const hwName = snapshot.child('hw3/Name').val();
  const dateLine = snapshot.child('hw3/Date').val();

  agent.add("You have " +hwName+ " due on " +dateLine+ ". Completion status is " +value+ ".");

});

на это:

function readHomework(agent){
 let ref = admin.database().ref('Homework');
  return ref.orderByChild("CompletionStatus").equalTo("no").once('value').then((snapshot) => {
   snapshot.forEach((childSnapshot) => {
    const value = childSnapshot.child('CompletionStatus').val();
    const hwName = childSnapshot.child('Name').val();
    const dateLine = childSnapshot.child('Date').val();

    agent.add("You have " +hwName+ " due on " +dateLine+ ". Completion status is " +value+ ".");

    });   
 });
}

Вы можете выполнить итерацию внутри своего родительского узла, который является Homework, и тогда вы сможете динамически получать значенияName, Date, CompletionStatus.

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