0

У меня есть следующий код для авторизации пользователя с использованием Firebase, но я не могу понять код. Ниже кода я упомянул сомнения, с которыми сталкиваюсь. Поясните, кто-то уточнит их.Как авторизация пользователя выполняется с использованием Firebase в webapp?

var ref = new Firebase("https://prj_name.firebaseio.com"); 
var loggedInUser = []; 
$(document).ready(function() { 
    authData=ref.getAuth(); 

    if(authData == null){ 
     //TODO find an elegant way to manage authorization 
    // window.location = "../index.html"; 
    }else{ 
     ref.child("users").child(authData.uid).on("value", function(snapshot){ 
      $("span.user-name").html(snapshot.val().displayName); 
      loggedInUser.displayName = snapshot.val().displayName; 
     }); 

    } 

    $("#cPassword").focusout(function() { 
     validatePassword($("#cPassword"), $("#password")); 
    }); 


    $(document).on("click", ".clickable-row" ,function(){ 
     window.document.location = $(this).data("href"); 
    }); 
}); 

function validatePassword(password, cPassword) { 
    if (cPassword.val() != password.val()) { 
     cPassword.css('border-color', 'red'); 
     password.css('border-color', 'red'); 
     return false; 
    } 
    return true; 
} 

Все необходимые библиотеки firebase были включены и выше код работает абсолютно нормально, единственное беспокойство, я не в состоянии понять это.

Мои сомнения заключаются в следующем:

  1. Что линия authData=ref.getAuth(); делать и что authData содержит после этого получить выполнить?
  2. В другом блоке, что такое значение и моментальный снимок. Я вообще не понял эту линию. ref.child("users").child(authData.uid).on("value", function(snapshot)

Может кто-то прояснить мои сомнения? Благодарю.

ответ

2

Ok здесь идет:

Во-первых, вы должны обновить firebase правила безопасности первых, если вы еще не: Firebase security rules guide

  1. ref.getAuth() возвращает значение, которое будет либо иметь нулевое значение, если вы еще не авторизованы или он будет содержать объект с некоторой информацией о том, как пользователь был авторизован (пользовательский токен, идентификатор facebook, электронная почта и т. д.)

  2. Эта строка: ref.child("users").child(authData.uid).on("value", function(snapshot). Здесь вы в основном запрашиваете некоторые данные из своей коллекции пользователей: '/ users/{some unique id}'. Когда вы запрашиваете данные из firebase, как только данные будут готовы к использованию, Firebase запускает обратный вызов «значение» и передает данные (моментальный снимок) с помощью этого обратного вызова.

Документы firebase очень хорошие, я бы посоветовал прочитать весь веб-путеводитель. Firebase web guide

Надеюсь, я смог прояснить некоторые вещи для вас!

+0

Спасибо за ваш ответ. Но все же остается сомневаться в том, какова роль «ценности» в функции? Пожалуйста, дополните. – user2839497

+0

Когда вы запрашиваете данные из firebase, как только данные будут готовы к использованию, Firebase запускает обратный вызов «значение» и передает данные (моментальный снимок) с помощью этого обратного вызова. – Ashmore11

Смежные вопросы