我正在为课程分配创建一个Webapp,并且想创建一个仅包含用户名的登录名。我尝试过仅将用户名推送到数据库,但将其作为子项推送到Firebase中的连接ID。这是我到目前为止创建的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");
});
我计划允许用户在离开页面后保留其统计信息,因此我认为将其分配给用户名是一种方法。如果有更好的方法可以解决此问题,请告诉我。
答案 0 :(得分:1)
您可以在数据库中创建一个名称为usernames
的单独节点,并在其中存储用户的所有用户名。
要检查正确的登录名,您可以在该孩子中进行检查,以查找您输入的用户名,如果该用户名与他们中的任何一个都匹配,则可以授予他们登录名。
将value
观察者分配给数据列表将以单个快照的形式返回整个数据列表,然后您可以循环访问它们以访问各个子项。
ref.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var childData = childSnapshot.val();
// ...
});
});
中了解有关此内容的更多信息
您也可以像处理子事件一样使用on('value', ...)
。