我使用Firebase获得了以下用户授权代码,但我无法理解代码。我在代码下面提到了我所面临的疑虑。有人澄清他们。
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)
有人可以澄清我的怀疑吗?谢谢。
答案 0 :(得分:2)
好的,请点击:
首先,如果您还没有更新您的firebase安全规则:Firebase security rules guide
ref.getAuth()返回一个值,如果您尚未获得授权,该值将为null,或者它将包含一个对象,其中包含有关用户如何被授权的信息(自定义令牌,Facebook ID) ,电子邮件等。)
这一行:ref.child("users").child(authData.uid).on("value", function(snapshot)
。在这里,您基本上要求用户收集一些数据:' / users / {some unique id}'。当您从firebase请求数据时,只要数据准备好使用,Firebase就会触发"值"回调并使用此回调传递数据(快照)。
firebase文档非常好,我建议阅读整个网络指南。 Firebase web guide
我希望我能为你清理一些事情!