Как получить конкретные данные в базе данных Firebase? - PullRequest
0 голосов
/ 12 сентября 2018

После того, как пользователь вошел в свою учетную запись, он / она спросит, какова его / ее роль пользователя.

IMG 1: задать роль пользователя

После выбора роли она будет сохранена в базе данных,

IMG 2: сохраненная роль пользователя

Итак, как нам получить конкретные данные из базы данных Firebase и затем распечатать их в HTML?

IMG 3: показать роль пользователя

Это коды, которые я использовал в моем .js

function app(user){

  function updateMyStatus(e){
    var myUpdate={};
    myUpdate.email = user.email;
    myUpdate.displayName = user.displayName;
    myUpdate.status = document.getElementById("clientStatus").value;
    fb.child(user.uid).set(myUpdate);
  }
  function receiveUpdate(received){
    var data = received.val();
    console.log( data );
    document.getElementById('role').innerHTML= "";
  }
  document.getElementById('userName').innerHTML = user.displayName;
  var fb = firebase.database().ref('Accounts');

  document.getElementById("clientStatus")
    .addEventListener("input",updateMyStatus);
}

и если у пользователя уже есть роль пользователя (статус), как показано на рисунке 2, как скрыть Dropbox, показанный на рисунке 1?

Ответы [ 3 ]

0 голосов
/ 12 сентября 2018
function receiveUpdate(received){
    var data = received.val();
    console.log( data );
    document.getElementById('role').innerHTML= "";
    //hide the dropdown box 
    document.getElementById("clientStatus").style.display = "none";
}
document.getElementById("clientStatus").addEventListener("input",updateMyStatus);
//put this under your other event listener
fb.child('Accounts').on(‘value’, receiveUpdate);

Этот код не будет работать так, как написано. Я надеюсь, что это поможет дать вам хорошую идею.

0 голосов
/ 19 сентября 2018

Исходя из вашего текущего кода и моего собственного понимания базы данных Firebase Realtime, вам необходимо выполнить следующие шаги:

  • Зарегистрировать слушателя для прослушивания изменений в базе данных
  • Чтобы быть более конкретным, вам нужно добавить слушателя в конкретное поле, которое вас интересует в базе данных.
  • Этот слушатель не должен быть внутри какой-либо функции.
  • Этот слушатель будет проверять, существует ли роль для вашего пользователя в базе данных.
    1. Если да, скрыть поле ввода и отобразить данные пользователя.
    2. Иначе, отображать как поле ввода, так и данные пользователя.

Поскольку у меня нет опыта использования базы данных реального времени (раньше я использовал только Cloud Firestore), я не очень знаком с ее синтаксисом. Но ссылка , предложенная @Andre Kool и @thezachcannon в предыдущем посте, содержит примеры добавления слушателя к конкретной ссылке на базу данных.

Надеюсь, это помогло.

0 голосов
/ 12 сентября 2018

Ниже будут возвращены ваши данные из Firebase для этой учетной записи. Затем нужно задать значения для соответствующих им элементов HTML.

fb.child(AccountId).on(‘value’, callbackFunction)

Для справки: https://firebase.google.com/docs/database/web/read-and-write

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