У меня есть следующий код для авторизации пользователя с использованием 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 были включены и выше код работает абсолютно нормально, единственное беспокойство, я не в состоянии понять это.
Мои сомнения заключаются в следующем:
- Что линия
authData=ref.getAuth();
делать и что authData содержит после этого получить выполнить? - В другом блоке, что такое значение и моментальный снимок. Я вообще не понял эту линию.
ref.child("users").child(authData.uid).on("value", function(snapshot)
Может кто-то прояснить мои сомнения? Благодарю.
Спасибо за ваш ответ. Но все же остается сомневаться в том, какова роль «ценности» в функции? Пожалуйста, дополните. – user2839497
Когда вы запрашиваете данные из firebase, как только данные будут готовы к использованию, Firebase запускает обратный вызов «значение» и передает данные (моментальный снимок) с помощью этого обратного вызова. – Ashmore11