Firebase - Как я могу реализовать логин, используя только имя пользователя (без пароля / адреса электронной почты)? - PullRequest
0 голосов
/ 17 октября 2018

Я создаю веб-приложение для назначения класса и хотел бы создать логин только с именем пользователя.Я пытался вставить только имя пользователя в базу данных, но оно как ребенок подталкивает к идентификатору соединения в Firebase.Вот Javaascript, который я создал до сих пор:

var config = {
    apiKey: "",
    authDomain: "",
    databaseURL: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: ""
};
firebase.initializeApp(config);

var database = firebase.database();

var connectionsRef = database.ref("/connections");
var userRef = database.ref("/users")
var connectedRef = database.ref(".info/connected");

connectedRef.on("value", function (snap) {
    // If they are connected..
    if (snap.val()) {
        // Add user to the connections list.
        var con = connectionsRef.push(true);
        // Remove user from the connection list when they disconnect.
        con.onDisconnect().remove();
    }
});

var database = firebase.database();
var username = "";

$("#submit").on("click", function (event) {
    event.preventDefault();

    username = $("#username").val().trim();
    userRef.push({
        username: username
    });

    $("#login-screen").attr("class", "hidden");
});

Я планирую разрешить пользователю сохранять свою статистику после ухода со страницы, поэтому я решил, что присвоение им имени пользователя будет правильным решением.Если есть более эффективные способы, пожалуйста, дайте мне знать.

1 Ответ

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

Вы можете создать отдельный узел в вашей базе данных с именем usernames и хранить там все имена пользователей ваших пользователей.

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

Прикрепление наблюдателя value к списку данных вернет весь список данных как одинснимок, который вы можете затем зациклить для доступа к отдельным дочерним элементам.

ref.once('value', function(snapshot) {
     snapshot.forEach(function(childSnapshot) {
         var childKey = childSnapshot.key;
         var childData = childSnapshot.val();
         // ...
      });
});

Подробнее об этом см. В документах здесь.

Вы также можете использовать on('value', ...) так же, как и для дочернего события.

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