Firebase Web Auth - 不支持的浏览器

时间:2018-06-07 17:23:21

标签: firebase knockout.js firebase-authentication

我想要实现的目标:在游戏环境中使用Knockout.js进行基于Firebase电子邮件和密码的身份验证(用户注册)。

问题:检索和写入数据库时​​,我在实施用户注册时遇到了困难。响应返回以下错误:“不支持此浏览器”。
为了执行身份验证过程有哪些要求,可能会因为不使用常规浏览器而是使用内置游戏而出现问题。

编辑: html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <noloc><title>UberBar</title></noloc>
    <link href="bundle://boot/boot.css" rel="stylesheet" type="text/css" />
    <link href="uberbar.css" rel="stylesheet" type="text/css" />

    <script src="https://www.gstatic.com/firebasejs/5.0.0/firebase.js"></script>
    <script>
      // Initialize Firebase
      var config = {
        apiKey: "*************************************",
        authDomain: "**************.firebaseapp.com",
        databaseURL: "https://**********.firebaseio.com",
        projectId: "**************",
        storageBucket: "****************.appspot.com",
        messagingSenderId: "**********"
      };
      firebase.initializeApp(config);
    </script>
    <script src="bundle://boot/boot.js" type="text/javascript"></script>
    <script src="coui://ui/main/shared/js/jabber.js" type="text/javascript"></script>
    <script src="coui://ui/main/shared/js/leaderboard_utility.js" type="text/javascript"></script>
    <script src="uberbar.js" type="text/javascript"></script>
</head>
<body data-bind="click: hideContextMenu">
    <div id="social-wrapper">
        <!-- ko if: (model.showUberBar()) -->
        <div id="uberbar_watermark">
             <loc>Offline</loc>
        </div>
        <!-- /ko -->
        <!-- ko if: (model.showUberBar() && model.hasJabber()) -->
        <!-- ko if: showUserDetails -->

<!-- File continues here... -->

修改: js

var model;
var handlers;


$(document).ready(function () {

    function PaChatModel() {
        var self = this;

        self.setColor = ko.observable(false);
        self.setVisibility = ko.observable(false);
        self.verificationStatus = ko.observable();
        var chat_auth_status = 0;
        self.verificationStatus('PA Community Chat (Authentication Required)');
        self.awaitPermissionClose = function() {
            self.verificationStatus('PA Community Chat (Authentication Required)');
            self.setVisibility(false);
            chat_auth_status = 0;
        }
        self.chatVerificationStatus = function() {
            switch(chat_auth_status) {
                case 0:
                    self.verificationStatus('Authentication in progress: Awaiting permission...');
                    self.setVisibility(true);
                    chat_auth_status = 1;
                    break;
            }
        }
    }

    PaChatModel();

    function AwaitPermissionSubmit() {
        var self = this;
        self.mailValue = ko.observable();
        self.pswValue = ko.observable();
        self.awaitPermissionError = ko.observable();
        var firebaseRef = firebase.database().ref();
        self.awaitPermissionSubmitBtn = function() {
            console.log(self.pswValue().length);
            if(!validateEmail(self.mailValue()) && self.pswValue().length < 8) {
                self.awaitPermissionError("Wrong E-Mail and Password format");
            } else if(self.pswValue().length < 8) {
                self.awaitPermissionError("Password must be at least 8 characters long");
            } else if(!validateEmail(self.mailValue())) {
                self.awaitPermissionError("Invalid E-Mail format");
            }

            else {
                firebase.auth().createUserWithEmailAndPassword(self.mailValue(), self.pswValue()).catch(function(error) {
                // Handle Errors here.
                var errorCode = error.code;
                var errorMessage = error.message;
                // [START_EXCLUDE]
                if (errorCode == 'auth/weak-password') {
                    self.awaitPermissionError("The password is too weak.");
                } else {
                self.awaitPermissionError(errorMessage);
                }
                console.log(error);
                // [END_EXCLUDE]
            });
            }
        }
    }

    function validateEmail(email) {
        var type = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return type.test(email);
    }

    AwaitPermissionSubmit();

0 个答案:

没有答案