Firebase — это платформа для разработки мобильных и веб-приложений, которая предоставляет множество инструментов, помогающих разработчикам использовать базы данных в реальном времени, монетизировать свои приложения, отслеживать отчеты о сбоях и многое другое. Этот пост будет в первую очередь посвящен базе данных Firebase Realtime. По сути, это размещенная в облаке база данных NoSQL, которая позволяет хранить данные и синхронизировать их между пользователями в режиме реального времени. Мы собираемся реализовать аутентификацию Firebase для Интернета.

Давайте перейдем к делу. Во-первых, вам нужно установить предпочитаемый вами текстовый редактор. Лично я предпочитаю Visual Studio Code за его уникальную простоту. Создайте файл и назовите его login.html и напишите следующий код:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Login Page</title>
</head>
<body>
<script src="firebase.js"></script>
<script src="login.js"></script>
</body>
</html>

Создайте еще один файл и назовите его main.html и повторите процесс с приведенным выше кодом. Измените заголовок на Главная страница или любое другое имя.

Затем перейдите в консоль Firebase, нажмите Добавить проект и примите условия. На панели управления проекта нажмите Добавить Firebase в свой веб-проект. Скопируйте приведенный ниже скрипт и вставьте его на свои login.html и main.html страницы перед закрывающим тегом </head> :

<script src="https://www.gstatic.com/firebasejs/5.8.4/firebase.js"></script>

Добавьте новый файл и назовите его firebase.js. В него скопируйте код, который инициализирует Firebase, который идет сразу после приведенного выше фрагмента кода. (Не копируйте теги <script>). Желательно обернуть ваш скрипт firebase функцией, вызываемой самостоятельно, чтобы сделать его приватным. Итак, мой код выглядит так:

var app_firebase = {};
(function(){
//Initialize firebase
var config = {
    apiKey: "MY_API_KEY",//placeholder for real API key
    authDomain: "MY_APP.firebaseapp.com", //placeholder for app name
    databaseURL: "https://MY_APP.firebaseio.com",
    projectId: "MY_APP",
    storageBucket: "MY_APP.appspot.com",
    messagingSenderId: "2236250329"
  };
  firebase.initializeApp(config);
app_firebase = firebase;
})()

Создайте еще один файл и назовите его login.js и напишите следующий код:

(function(){
var ui = new firebaseui.auth.AuthUI(firebase.auth());
var uiConfig = {
callbacks: {
signInSuccessWithAuthResult: function(authResult, redirectUrl) {
// User successfully signed in.
// Return type determines whether we continue the redirect automatically
// or whether we leave that to developer to handle.
return true;
},
uiShown: function() {
// The widget is rendered.
// Hide the loader.
document.getElementById('loader').style.display = 'none';
}
},
// Will use popup for IDP Providers sign-in flow instead of the default, redirect.
signInFlow: 'popup',
signInSuccessUrl: 'main,html',
signInOptions: [
// Leave the lines as is for the providers you want to offer your users.
firebase.auth.GoogleAuthProvider.PROVIDER_ID, //Google sign in
firebase.auth.FacebookAuthProvider.PROVIDER_ID, //Facebook sign in
firebase.auth.TwitterAuthProvider.PROVIDER_ID, // Twitter sign in
firebase.auth.GithubAuthProvider.PROVIDER_ID, //Github sign in
firebase.auth.EmailAuthProvider.PROVIDER_ID, //Email sign in
firebase.auth.PhoneAuthProvider.PROVIDER_ID //Phone sign in
],
// Terms of service url.
tosUrl: '<your-tos-url>', //replace with your terms of service url
// Privacy policy url.
privacyPolicyUrl: '<your-privacy-policy-url>' //replace with your privacy policy url
};
ui.start('#firebaseui-auth-container', uiConfig);
})()

Затем перейдите на свою login.html страницу и скопируйте этот код в раздел <body>:

<h1>Welcome to My Firebase Auth App</h1>
<div id="firebaseui-auth-container"></div>
<div id="loader">Loading...</div>

После этого перейдите на страницу login.html и скопируйте приведенный ниже скрипт прямо под скриптом firebase js:

<script src="https://cdn.firebase.com/libs/firebaseui/3.5.2/firebaseui.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.firebase.com/libs/firebaseui/3.5.2/firebaseui.css" />

Это инициализирует пользовательский интерфейс firebase с собственными пользовательскими функциями css и js.

На странице main.html напишите свою приветственную страницу в теге <body>:

<h1>Welcome to the Main Page</h1>

Перейдите в консоль Firebase и нажмите на вкладку метода входа. Включите все функции входа, которые вы хотите купить, нажав на значок карандаша. В файле login.js выберите нужный вариант регистрации и удалите или закомментируйте остальные. Желательно протестировать работающее веб-приложение на локальном сервере. Тебе должно быть хорошо идти.