我想使用表单元素的输入值来添加对firebase数据的子引用。但是,firebase .child()需要一个字符串,我试图插入一个变量(其值是一个字符串),但它不起作用。我如何通过这个?
例如,这是一个非常简单的输入和提交按钮代码。在提交时,我想获取用户名并在我的数据库中添加子引用(在/ users ref下):
{username:{userid:“someID”}}
<html>
<body>
<form>
<input id="testusername" type="text">
<button type="submit" id="testsubmit" value="submit"></button>
</form>
<p>test file for .child()/p>
<script type="text/javascript">
$('#testsubmit').on('click',function(){
var elusername = document.getElementById('testusername');
var username = elusername.value;
alert('username is' + username)
var url = "https://thriftit.firebaseio.com/users";
var firebaseRef = new Firebase(url);
firebaseRef.child(username).push({
userid: "someID"});
});
</script>
</body>
</html>
答案 0 :(得分:1)
还有几件事。
您在javascript可以运行之前提交表单,您需要阻止该页面在点击时提交页面,因此请删除类型=&#34;提交&#34;
我不会在用户名上做孩子,原因是如果其他用户使用相同的用户名添加了一些数据,那么它将添加到相同的用户名中,这样您就可以获得两个批次使用相同用户名的数据。
你想要这样的东西:
$('#testsubmit').on('click',function(){
var elusername = document.getElementById('testusername'),
username = elusername.value,
url = "https://thriftit.firebaseio.com/users",
firebaseRef = new Firebase(url);
userRef = firebaseRef.push({
username: username,
userid: "someID"
});
console.log(userRef.name()); // this is the uid for the newly generated user
});