在Firebase中使用表单元素作为变量.child()

时间:2015-03-26 04:42:49

标签: javascript firebase

我想使用表单元素的输入值来添加对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>

1 个答案:

答案 0 :(得分:1)

还有几件事。

  1. 您在javascript可以运行之前提交表单,您需要阻止该页面在点击时提交页面,因此请删除类型=&#34;提交&#34;

  2. 我不会在用户名上做孩子,原因是如果其他用户使用相同的用户名添加了一些数据,那么它将添加到相同的用户名中,这样您就可以获得两个批次使用相同用户名的数据。

  3. 你想要这样的东西:

     $('#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        
    });