Firebase передача данных между страницами - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь создать страницу регистрации, в которой есть двухстраничный процесс для веб-сайта на базе firebase.Первая HTML-страница содержит информацию о пользователях (имя, адрес электронной почты и т. Д.), А вторая позволяет им установить дополнительные данные.У меня проблема с получением уникального идентификатора пользователя, который я установил для первой страницы, перенос его на вторую страницу и разрешение пользователю обновлять свой узел, добавляя больше данных.

Так что яиспользуя два отдельных js-файла, первый для регистрации на первой странице:

    var usersRef = firebase.database().ref().child('PickUp').child('Users').push();

    document.getElementById('mySubmit').addEventListener('click', submitForm);

    function submitForm(e){

        e.preventDefault();

        var name = getInputVal('name');
        var pass = getInputVal('password');
        var email = getInputVal('emailfield2');
        var address = getInputVal('addressfield');
        var gender = getInputVal('gender');

        createUser( name, pass, email, address, gender);
       }

    function getInputVal(id){
        return document.getElementById(id).value;
    }
    function createUser(fullName, password, email, gender) {
    usersRef.set({
    fullname: fullName,
    password: password,
    email: email,
    gender: gender,
    karma: "5000",
    })

Второй:

      var usersRef = firebase.database().ref().child('PickUp').child('Users');
  document.getElementById('mySubmit2').addEventListener('click', submitForm);
  function submitForm(e){

          e.preventDefault();

          var base = getInputVal('base');
          var basket = getInputVal('basket');
          var soccer = getInputVal('soccer');
          var tennis = getInputVal('tennis');
          var volley = getInputVal('volley');

          updateUser(base, basket, soccer, tennis, volley);
  }

  function updateUser(base, basket, soccer, tennis, volley) {
    usersRef.update({
        baseball: base,
        basketball: basket,
        tennis: tennis,
        soccer: soccer,
        volleyball: volley

    });

Я просто пытаюсь соединить эти два узла из двух разных HTMLстраниц, из двух разных файлов и сделать его одним узлом со всей информацией.

Я не могу найти никаких ссылок или способов исправить это, но если есть, пожалуйста, отправьте его.Любая помощь всегда ценится.

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Метод .onAuthStateChanged(), включенный в SDK на стороне клиента - в вашем случае, документированный JavaScript SDK, вот как это сделать.firebase.auth().currentUser.uid заполнится этой информацией.

0 голосов
/ 25 ноября 2018

Это может быть проблема синхронизации.Возможно, ваш второй сценарий вызывает слишком быстрый запрос userRef для Firebase.Вы можете попытаться сделать следующее:

TL; DR - задержать пользовательский запрос Firebase

  var usersRef;
  document.getElementById('mySubmit2').addEventListener('click', submitForm);
  function submitForm(e){

          e.preventDefault();

          var base = getInputVal('base');
          var basket = getInputVal('basket');
          var soccer = getInputVal('soccer');
          var tennis = getInputVal('tennis');
          var volley = getInputVal('volley');
          userRef = firebase.database().ref().child('PickUp').child('Users');
          updateUser(base, basket, soccer, tennis, volley);
  }

  function updateUser(base, basket, soccer, tennis, volley) {
    usersRef.update({
        baseball: base,
        basketball: basket,
        tennis: tennis,
        soccer: soccer,
        volleyball: volley

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