Как вы добавляете пользователей и дополнительную информацию в пользовательский узел в базе данных каждый раз, когда они регистрируются? - PullRequest
0 голосов
/ 20 октября 2018

Я пытался создать код, используя то, что я нашел в Интернете о добавлении дополнительных деталей к пользовательскому узлу, но у меня нет четкого и определенного решения.Я не могу разобраться с поиском в Google и другими подобными вещами, но я нашел только устаревшее решение, которое не поддерживается и не работает с текущей версией Firebase.Итак, вот что я придумала:

(function(){
  var ref = new firebase.database();
  ref.onAuth(function(authData) {
    if (authData && isNewUser) {
      // save the user's profile into Firebase so we can list users,
      // use them in Security and Firebase Rules, and show profiles
      ref.child("users").child(authData.uid).set({
        provider: authData.provider,
        name: getName(authData)
      });
    }
  });
    var ui = new firebaseui.auth.AuthUI(firebase.auth());
    var uiConfig = {
        callbacks: {
          signInSuccessWithAuthResult: function(authResult, redirectUrl) {
            // User successfully signed in.
            // Return type determines whether we continue the redirect automatically
            // or whether we leave that to developer to handle.
            return true;
          },
          uiShown: function() {
            // The widget is rendered.
            // Hide the loader.
            document.getElementById('loader').style.display = 'none';
          }
        },
        // Will use popup for IDP Providers sign-in flow instead of the default, redirect.
        signInFlow: 'popup',
        signInSuccessUrl: 'map_menu.php',
        signInOptions: [
          firebase.auth.EmailAuthProvider.PROVIDER_ID,
        ],
        // Terms of service url.
        tosUrl: 'map_menu.php',
        // Privacy policy url.
        privacyPolicyUrl: 'map_menu.php'
      };

      ui.start('#firebaseui-auth-container', uiConfig);
})()

1 Ответ

0 голосов
/ 20 октября 2018

Вы должны добавить код для получения пользовательских данных, таких как uid, в качестве основного дочернего элемента пользователя и всех других деталей в качестве дочерних узлов этого узла в вашей базе данных.

Структура Json, которая выглядитчто-то вроде этого:

{
      "accounts" : {
        "userId value" : {
          "email" : "",
          "userId" : ""
        },
        "userId value" : {
          "email" : "",
          "userId" : ""
        }
      }

Чтобы сохранить данные пользователей в этом узле, просто когда они зарегистрированы, вы можете добавить код, подобный этому:

var uid = firebase.auth().currentUser.uid;
firebase.database().ref().child('accounts').child(uid).set({
  email: user.email,
  userId: uid
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...