Firebase createUser身份验证错误

时间:2013-05-16 23:07:01

标签: javascript backbone.js coffeescript firebase firebase-security

所以我在firebase简单认证方面遇到了最棘手的问题......

当我访问localhost/#register时,请填写表单,然后提交,我在SERVER_ERROR回调中获得authClient.createUser()。但是,当我刷新页面并再次填写表单时,它就可以了!

每次重新启动服务器并尝试注册用户时都会发生这种情况。

重申一下,我第一次执行它时出现了服务器错误,但是在刷新页面后,所有内容都像魅力一样...这让我觉得我错误地包含了firebase脚本,而且所有的在刷新之前不会包含必要的文件,但我无法看到我出错的地方。

更新:我在提交表单时出现此错误(出于隐私而出演):

WebSocket connection to 'wss://s-demo.firebaseio-demo.com/.ws?**********************' failed: WebSocket is closed before the connection is established. 

错误来自firebase.js行51 - 63。

堆栈   - 带有骨干牵线木偶的brunch.io。基本上它是一个带有coffee-script的gruntJS构建和一个commonJS包装器,用于非常简单的前端模块化。

index.html - 其中包含脚本

<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Brunch with Marionette</title>
  <meta name="viewport" content="width=device-width">

  <!-- CSS and font-awesome -->
  <link rel="stylesheet" href="stylesheets/app.css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/3.1.1/css/font-awesome.css" rel="stylesheet">

  <!-- Grunt compiled scripts -->
  <script src="javascripts/vendor.js"></script>
  <script src="javascripts/app.js"></script>

  <!-- Firebase scripts -->
    <script src="javascripts/backbone-firebase.js"></script>
    <script src="https://cdn.firebase.com/v0/firebase.js"></script>
  <script type='text/javascript' src='https://cdn.firebase.com/v0/firebase-auth-client.js'></script>

  <!-- Start application -->
  <script>
        require('initialize');
  </script>
</head>
<body>
</body>
</html>

RegisterView.coffee - 我在其中创建authClient并尝试创建一个新的firebase注册用户(骨干模型正确添加到UserList集合,然后与数据库同步没错,唯一的问题是createUser()

template = require './templates/register'
User = require '../models/user'

user = new User()

module.exports = class RegisterView extends Backbone.Marionette.ItemView
    id: 'register-view'
    template: template
    model: user

    initialize: ->
        this.form = $(this.el).find('form#account')
        base = new Firebase("https://***********.firebaseIO-demo.com/")
        this.authClient = new FirebaseAuthClient base, 
            (error, user_cb)->
                if (error)
                    console.log(error)
                else if (user_cb)
                    console.log('User ID: ' + user_cd.id + ', Provider: ' + user_cb.provider)
                else
                                    # This is currently what gets executed, 
                                    # which I'm pretty sure is correct behavior
                    console.log('logged out')
    events: 
        'submit form': 'on_submit'
        'blur #first_name' : 'check_first'
        'blur #last_name' : 'check_last'
        'blur #email' : 'check_email'
        'blur #password' : 'check_password'
        'blur #confirm_password' : 'check_confirm_password'

    on_submit: (e)->
        this.add_user()

    check_first: (e)->

    check_last: (e)->

    check_email: (e)->

    check_password: (e)->

    check_confirm_password: (e)->

    add_user: (e)->
        form = $(this.el).find('form#account')

        user.set({
        first_name : form.find('#first_name').val()
        last_name : form.find('#last_name').val()
        email : form.find('#email').val()
        password: form.find('#password').val()
    })
    window.UserList.add(user)

    email = form.find('#email').val()
    password = form.find('#password').val()

        this.authClient.createUser(email, password, 
            (error, user)->
                if (error)
                    console.log(error)
                if (!error)
                    console.log('User Id: ' + user.id + ', Email: ' + user.email)
        )

更新:我尝试将服务器从-demo更改为生产服务器,但没有任何区别。

0 个答案:

没有答案
相关问题