2016-05-22 2 views
0

Я использую firebase в качестве веб-клиента для приложения для создания системы входа в систему однако, когда я ввожу имя пользователя & пароль & нажмите логин, он скажет ошибку сервера.Я использую firebase как веб-клиент для приложения для создания системы входа, однако, когда я ввожу имя пользователя и пароль и нажимаю логин, он говорит, что ошибка сервера

Как устранить ошибку сервера и что это значит по ошибке сервера?

Спасибо и помощь будет appreciated☺ код, я использовал для создания веб-клиента

var ROOT_URL = "https://exampleapp.firebaseio.com/"; // Change to your Firebase App 
var FIREBASE_CREDENTIAL = "yourAppSecret"; // Change to your Firebase App Secret 
var firebase = { 
    register : function (email, password, callback) { 
     var emailReplace = email.replace(/\./g, ","); 
     var beginRegister = function() { 
      var requestObj = { "email" : email, "password" : password }; 
      var requestJSON = JSON.stringify(requestObj); 
      var wcRegister = new SMF.Net.WebClient({ 
       URL : ROOT_URL + "Users/" + emailReplace + ".json?auth=" + FIREBASE_CREDENTIAL, 
       httpMethod : "POST", 
       requestHeaders : ['Content-Type:application/json', 'X-HTTP-Method-Override:PATCH'], 
       requestBody : requestJSON, 
       onSyndicationSuccess : function (e) { 
        alert("Begin register success"); 
       }, 
       onServerError : function (e) { 
        alert("Begin register error"); 
       } 
      }); 
      wcRegister.run(true); 
     }; 
     var isTaken = new SMF.Net.WebClient({ 
      URL : ROOT_URL + "Users/" + emailReplace + ".json?auth=" + FIREBASE_CREDENTIAL, 
      httpMethod : "GET", 
      requestHeaders : ["Content-Type:application/json"], 
      onSyndicationSuccess : function (e) { 
       alert("Is taken sucess"); 
       var response = JSON.parse(isTaken.responseText); 
       if (response !== null) { 
        //Email is taken, do something 
       } else { 
        beginRegister(); //Email is not taken, continue 
       } 
      }, onServerError : function (e) { 
       //Server Error, do something 
       alert("Is taken error"); 
      } 
     }); 
     isTaken.run(); 
    } 
}; 

Я использую smartface приложения студии.

+0

Эй, Люси, этот вопрос уже решен? Если мой ответ не решает, дайте мне знать :) –

+0

У этого есть 【★ тндйκ чoμ. ゚ +. ☆】 ョ'∀ ') –

+0

Итак, вы могли бы принять правильный ответ? Всегда хорошо, чтобы ваши коллеги знали, что вопрос решен :) –

ответ

0

Ошибка сервера означает, что ваш запрос к указанному URL-адресу не был успешно выполнен. Я проверил ваш код, и он работал для меня с моими собственными конфигурациями firebase.

Если вы используете собственный файл сертификата, который находится в папке «Активы» вашего проекта и называется «cacert.pem», возможно, этот ЦС не согласен с тем доменом, который я не знаю. Вы можете проверить сообщение об ошибке в onServerError с

alert(e.message); 

Это даст более подробную информацию об ошибке. Также вы проверили URL-адрес и тело с помощью другого инструмента запроса HTTP, такого как hurl.it?

0

Ну, я знаю, что он работает, потому что я написал этот код: P, но, вероятно, это потому, что вы не изменяли правила Firebase для доступа к вашему приложению или не добавляли значения переменных. Вы поменяли FIREBASE_CREDENTIAL на секрет своего приложения? Вы изменили ROOT_URL на корневой URL вашего приложения Firebase?

Если вы сделали так, проверьте firebase правила, это должно быть что-то вроде:

{ 
 
    "rules": { 
 
     ".read": "auth == 'YOUR_APP_SECRET'", 
 
     ".write": "auth == 'YOUR_APP_SECRET'" 
 
    } 
 
}

Не забудьте изменить YOUR_APP_SECRET с приложением секрету (довольно логично, да: P).

Если вы уже это сделали и все еще не работают, проверьте, правильно ли вы вызываете функцию, и перед тем, как попытаться войти в систему, зарегистрируйте его. Кстати, код, который вы показали, неполный, у него нет функции входа в систему, это тоже может быть проблемой.

И только вам известно, что если вы хотите добавить дополнительную информацию о пользователе, вы можете изменить функции, чтобы добавить столько параметров, сколько хотите, но это был бы другой вопрос правильно? : P

Смежные вопросы