How do I configure a game to save an request data to Firebase by using javascript on Android app?

  • I wanted to link my game to firebase, and saw firebase's documentation, then

    I added this script in javascript to my game:

     /**
     * Handles the sign in button press.
     */
     function toggleSignIn() {
     if (firebase.auth().currentUser) {
     // [START signout]
     firebase.auth().signOut();
     // [END signout]
     } else {
     if (email.length < 4) {
     alert('Please enter an email address.');
     return;
     }
     if (password.length < 4) {
     alert('Please enter a password.');
     return;
     }
     // Sign in with email and pass.
     // [START authwithemail]
     firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode === 'auth/wrong-password') {
     alert('Wrong password.');
     } else {
     alert(errorMessage);
     }
     console.log(error);
     document.getElementById('quickstart-sign-in').disabled = false;
     // [END_EXCLUDE]
     });
     // [END authwithemail]
     }
     document.getElementById('quickstart-sign-in').disabled = true;
     }
     /**
     * Handles the sign up button press.
     */
     function handleSignUp() {
     if (email.length < 4) {
     alert('Please enter an email address.');
     return;
     }
     if (password.length < 4) {
     alert('Please enter a password.');
     return;
     }
     // Sign in with email and pass.
     // [START createwithemail]
     firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode == 'auth/weak-password') {
     alert('The password is too weak.');
     } else {
     alert(errorMessage);
     }
     console.log(error);
     // [END_EXCLUDE]
     });
     // [END createwithemail]
     }
     /**
     * Sends an email verification to the user.
     */
     function sendEmailVerification() {
     // [START sendemailverification]
     firebase.auth().currentUser.sendEmailVerification().then(function() {
     // Email Verification sent!
     // [START_EXCLUDE]
     alert('Email Verification Sent!');
     // [END_EXCLUDE]
     });
     // [END sendemailverification]
     }
     function sendPasswordReset() {
     var email = document.getElementById('email').value;
     // [START sendpasswordemail]
     firebase.auth().sendPasswordResetEmail(email).then(function() {
     // Password Reset Email Sent!
     // [START_EXCLUDE]
     alert('Password Reset Email Sent!');
     // [END_EXCLUDE]
     }).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode == 'auth/invalid-email') {
     alert(errorMessage);
     } else if (errorCode == 'auth/user-not-found') {
     alert(errorMessage);
     }
     console.log(error);
     // [END_EXCLUDE]
     });
     // [END sendpasswordemail];
     }
     /**
     * initApp handles setting up UI event listeners and registering Firebase auth listeners:
     * - firebase.auth().onAuthStateChanged: This listener is called when the user is signed in or
     * out, and that is where we update the UI.
     */
     function initApp() {
     // Listening for auth state changes.
     // [START authstatelistener]
     firebase.auth().onAuthStateChanged(function(user) {
     // [START_EXCLUDE silent]
     document.getElementById('quickstart-verify-email').disabled = true;
     // [END_EXCLUDE]
     if (user) {
     // User is signed in.
     var displayName = user.displayName;
     var email = user.email;
     var emailVerified = user.emailVerified;
     var photoURL = user.photoURL;
     var isAnonymous = user.isAnonymous;
     var uid = user.uid;
     var providerData = user.providerData;
     // [START_EXCLUDE]
     document.getElementById('quickstart-sign-in-status').textContent = 'Signed in';
     document.getElementById('quickstart-sign-in').textContent = 'Sign out';
     document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' ');
     if (!emailVerified) {
     document.getElementById('quickstart-verify-email').disabled = false;
     }
     // [END_EXCLUDE]
     } else {
     // User is signed out.
     // [START_EXCLUDE]
     document.getElementById('quickstart-sign-in-status').textContent = 'Signed out';
     document.getElementById('quickstart-sign-in').textContent = 'Sign in';
     document.getElementById('quickstart-account-details').textContent = 'null';
     // [END_EXCLUDE]
     }
     // [START_EXCLUDE silent]
     document.getElementById('quickstart-sign-in').disabled = false;
     // [END_EXCLUDE]
     });
     // [END authstatelistener]
     document.getElementById('quickstart-sign-in').addEventListener('click', toggleSignIn, false);
     document.getElementById('quickstart-sign-up').addEventListener('click', handleSignUp, false);
     document.getElementById('quickstart-verify-email').addEventListener('click', sendEmailVerification, false);
     document.getElementById('quickstart-password-reset').addEventListener('click', sendPasswordReset, false);
     }
     window.onload = function() {
     initApp();
     };
    

    But I need to add this HTML script to preview my project on my browser:

    	<html>
    <meta charset=utf-8 />
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Email/Password Authentication Example</title>
    
     <!-- Material Design Theming -->
     <link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.orange-indigo.min.css">
     <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
     <script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script>
    
     <link rel="stylesheet" href="main.css">
    
     <!-- Import and configure the Firebase SDK -->
    	
    <script src="https://www.gstatic.com/firebasejs/5.8.4/firebase.js"></script>
    <script>
     // Initialize Firebase
     // TODO: Replace with your project's customized code snippet
     var config = {
     apiKey: "<API_KEY>",
     authDomain: "<PROJECT_ID>.firebaseapp.com",
     databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
     projectId: "<PROJECT_ID>",
     storageBucket: "<BUCKET>.appspot.com",
     messagingSenderId: "<SENDER_ID>",
     };
     firebase.initializeApp(config);
    </script>
     <!-- These scripts are made available when the app is served or deployed on Firebase Hosting -->
     <!-- If you do not serve/host your project using Firebase Hosting see 

    firebase.google.com/docs/web/setup --> [/p] <script src="/__/firebase/5.7.0/firebase-app.js"></script> [/p] <script src="/__/firebase/5.7.0/firebase-auth.js"></script> [/p] <script src="/__/firebase/init.js"></script> [/p] [/p] <script type="text/javascript"> [/p] <head> [/p] /** [/p] * Handles the sign in button press. [/p] */ [/p] function toggleSignIn() { [/p] if (firebase.auth().currentUser) { [/p] // [START signout] [/p] firebase.auth().signOut(); [/p] // [END signout] [/p] } else { [/p] var email = document.getElementById('email').value; [/p] var password = document.getElementById('password').value; [/p] if (email.length < 4) { [/p] alert('Please enter an email address.'); [/p] return; [/p] } [/p] if (password.length < 4) { [/p] alert('Please enter a password.'); [/p] return; [/p] } [/p] // Sign in with email and pass. [/p] // [START authwithemail] [/p] firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) { [/p] // Handle Errors here. [/p] var errorCode = error.code; [/p] var errorMessage = error.message; [/p] // [START_EXCLUDE] [/p] if (errorCode === 'auth/wrong-password') { [/p] alert('Wrong password.'); [/p] } else { [/p] alert(errorMessage); [/p] } [/p] console.log(error); [/p] document.getElementById('quickstart-sign-in').disabled = false; [/p] // [END_EXCLUDE] [/p] }); [/p] // [END authwithemail] [/p] } [/p] document.getElementById('quickstart-sign-in').disabled = true; [/p] } [/p] </head> [/p] <body> [/p] [/p] </body> [/p] </html> [/p]

    Please, help me, I'm poor so I can't to by this wonderful plugin:

    chadorirebornxd.itch.io/construct-master-collection

    And I don't want to permanently export my project to get the index.html file and modifie the <head> section...

  • Actually, the only solution that I found is to add a HTML file to my project, then, use the AJAX plugin to set the HTML content of the plugin Iframe to:

    <!DOCTYPE html>
    <!--
    Copyright (c) 2016 Google Inc.
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    

    apache.org/licenses/LICENSE-2.0 [/p] Unless required by applicable law or agreed to in writing, software [/p] distributed under the License is distributed on an "AS IS" BASIS, [/p] WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. [/p] See the License for the specific language governing permissions and [/p] limitations under the License. [/p] --> [/p] <html> [/p] <head> [/p] <meta charset=utf-8 /> [/p] <meta name="viewport" content="width=device-width, initial-scale=1.0"> [/p] <title>Email/Password Authentication Example</title> [/p] [/p] <!-- Material Design Theming --> [/p] <link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.orange-indigo.min.css"> [/p] <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> [/p] <script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script> [/p] [/p] <link rel="stylesheet" href="main.css"> [/p] [/p] <!-- Import and configure the Firebase SDK --> [/p] [/p] <script src="https://www.gstatic.com/firebasejs/5.8.4/firebase.js"></script> [/p] <script> [/p] // Initialize Firebase [/p] // TODO: Replace with your project's customized code snippet [/p] var config = { [/p] apiKey: "<API_KEY>", [/p] authDomain: "<PROJECT_ID>.firebaseapp.com", [/p] databaseURL: "https://<DATABASE_NAME>.firebaseio.com", [/p] projectId: "<PROJECT_ID>", [/p] storageBucket: "<BUCKET>.appspot.com", [/p] messagingSenderId: "<SENDER_ID>", [/p] }; [/p] firebase.initializeApp(config); [/p] </script> [/p] <!-- These scripts are made available when the app is served or deployed on Firebase Hosting --> [/p] <!-- If you do not serve/host your project using Firebase Hosting see firebase.google.com/docs/web/setup --> [/p] <script src="/__/firebase/5.7.0/firebase-app.js"></script> [/p] <script src="/__/firebase/5.7.0/firebase-auth.js"></script> [/p] <script src="/__/firebase/init.js"></script> [/p] [/p] <script type="text/javascript"> [/p] /** [/p] * Handles the sign in button press. [/p] */ [/p] function toggleSignIn() { [/p] if (firebase.auth().currentUser) { [/p] // [START signout] [/p] firebase.auth().signOut(); [/p] // [END signout] [/p] } else { [/p] var email = document.getElementById('email').value; [/p] var password = document.getElementById('password').value; [/p] if (email.length < 4) { [/p] alert('Please enter an email address.'); [/p] return; [/p] } [/p] if (password.length < 4) { [/p] alert('Please enter a password.'); [/p] return; [/p] } [/p] // Sign in with email and pass. [/p] // [START authwithemail] [/p] firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) { [/p] // Handle Errors here. [/p] var errorCode = error.code; [/p] var errorMessage = error.message; [/p] // [START_EXCLUDE] [/p] if (errorCode === 'auth/wrong-password') { [/p] alert('Wrong password.'); [/p] } else { [/p] alert(errorMessage); [/p] } [/p] console.log(error); [/p] document.getElementById('quickstart-sign-in').disabled = false; [/p] // [END_EXCLUDE] [/p] }); [/p] // [END authwithemail] [/p] } [/p] document.getElementById('quickstart-sign-in').disabled = true; [/p] } [/p] /** [/p] * Handles the sign up button press. [/p] */ [/p] function handleSignUp() { [/p] var email = document.getElementById('email').value; [/p] var password = document.getElementById('password').value; [/p] if (email.length < 4) { [/p] alert('Please enter an email address.'); [/p] return; [/p] } [/p] if (password.length < 4) { [/p] alert('Please enter a password.'); [/p] return; [/p] } [/p] // Sign in with email and pass. [/p] // [START createwithemail] [/p] firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) { [/p] // Handle Errors here. [/p] var errorCode = error.code; [/p] var errorMessage = error.message; [/p] // [START_EXCLUDE] [/p] if (errorCode == 'auth/weak-password') { [/p] alert('The password is too weak.'); [/p] } else { [/p] alert(errorMessage); [/p] } [/p] console.log(error); [/p] // [END_EXCLUDE] [/p] }); [/p] // [END createwithemail] [/p] } [/p] /** [/p] * Sends an email verification to the user. [/p] */ [/p] function sendEmailVerification() { [/p] // [START sendemailverification] [/p] firebase.auth().currentUser.sendEmailVerification().then(function() { [/p] // Email Verification sent! [/p] // [START_EXCLUDE] [/p] alert('Email Verification Sent!'); [/p] // [END_EXCLUDE] [/p] }); [/p] // [END sendemailverification] [/p] } [/p] function sendPasswordReset() { [/p] var email = document.getElementById('email').value; [/p] // [START sendpasswordemail] [/p] firebase.auth().sendPasswordResetEmail(email).then(function() { [/p] // Password Reset Email Sent! [/p] // [START_EXCLUDE] [/p] alert('Password Reset Email Sent!'); [/p] // [END_EXCLUDE] [/p] }).catch(function(error) { [/p] // Handle Errors here. [/p] var errorCode = error.code; [/p] var errorMessage = error.message; [/p] // [START_EXCLUDE] [/p] if (errorCode == 'auth/invalid-email') { [/p] alert(errorMessage); [/p] } else if (errorCode == 'auth/user-not-found') { [/p] alert(errorMessage); [/p] } [/p] console.log(error); [/p] // [END_EXCLUDE] [/p] }); [/p] // [END sendpasswordemail]; [/p] } [/p] /** [/p] * initApp handles setting up UI event listeners and registering Firebase auth listeners: [/p] * - firebase.auth().onAuthStateChanged: This listener is called when the user is signed in or [/p] * out, and that is where we update the UI. [/p] */ [/p] function initApp() { [/p] // Listening for auth state changes. [/p] // [START authstatelistener] [/p] firebase.auth().onAuthStateChanged(function(user) { [/p] // [START_EXCLUDE silent] [/p] document.getElementById('quickstart-verify-email').disabled = true; [/p] // [END_EXCLUDE] [/p] if (user) { [/p] // User is signed in. [/p] var displayName = user.displayName; [/p] var email = user.email; [/p] var emailVerified = user.emailVerified; [/p] var photoURL = user.photoURL; [/p] var isAnonymous = user.isAnonymous; [/p] var uid = user.uid; [/p] var providerData = user.providerData; [/p] // [START_EXCLUDE] [/p] document.getElementById('quickstart-sign-in-status').textContent = 'Signed in'; [/p] document.getElementById('quickstart-sign-in').textContent = 'Sign out'; [/p] document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' '); [/p] if (!emailVerified) { [/p] document.getElementById('quickstart-verify-email').disabled = false; [/p] } [/p] // [END_EXCLUDE] [/p] } else { [/p] // User is signed out. [/p] // [START_EXCLUDE] [/p] document.getElementById('quickstart-sign-in-status').textContent = 'Signed out'; [/p] document.getElementById('quickstart-sign-in').textContent = 'Sign in'; [/p] document.getElementById('quickstart-account-details').textContent = 'null'; [/p] // [END_EXCLUDE] [/p] } [/p] // [START_EXCLUDE silent] [/p] document.getElementById('quickstart-sign-in').disabled = false; [/p] // [END_EXCLUDE] [/p] }); [/p] // [END authstatelistener] [/p] document.getElementById('quickstart-sign-in').addEventListener('click', toggleSignIn, false); [/p] document.getElementById('quickstart-sign-up').addEventListener('click', handleSignUp, false); [/p] document.getElementById('quickstart-verify-email').addEventListener('click', sendEmailVerification, false); [/p] document.getElementById('quickstart-password-reset').addEventListener('click', sendPasswordReset, false); [/p] } [/p] window.onload = function() { [/p] initApp(); [/p] }; [/p] </script> [/p] </head> [/p] <body> [/p] <div class="demo-layout mdl-layout mdl-js-layout mdl-layout--fixed-header"> [/p] [/p] <!-- Header section containing title --> [/p] <header class="mdl-layout__header mdl-color-text--white mdl-color--light-blue-700"> [/p] <div class="mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-grid"> [/p] <div class="mdl-layout__header-row mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-cell--8-col-desktop"> [/p] <a href="/"><h3>Firebase Authentication</h3></a> [/p] </div> [/p] </div> [/p] </header> [/p] [/p] <main class="mdl-layout__content mdl-color--grey-100"> [/p] <div class="mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-grid"> [/p] [/p] <!-- Container for the demo --> [/p] <div class="mdl-card mdl-shadow--2dp mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-cell--12-col-desktop"> [/p] <div class="mdl-card__title mdl-color--light-blue-600 mdl-color-text--white"> [/p] <h2 class="mdl-card__title-text">Firebase Email &amp; Password Authentication</h2> [/p] </div> [/p] <div class="mdl-card__supporting-text mdl-color-text--grey-600"> [/p] <p>Enter an email and password below and either sign in to an existing account or sign up</p> [/p] [/p] <input class="mdl-textfield__input" style="display:inline;width:auto;" type="text" id="email" name="email" placeholder="Email"/> [/p] &nbsp;&nbsp;&nbsp; [/p] <input class="mdl-textfield__input" style="display:inline;width:auto;" type="password" id="password" name="password" placeholder="Password"/> [/p] <br/><br/> [/p] <button disabled class="mdl-button mdl-js-button mdl-button--raised" id="quickstart-sign-in" name="signin">Sign In</button> [/p] &nbsp;&nbsp;&nbsp; [/p] <button class="mdl-button mdl-js-button mdl-button--raised" id="quickstart-sign-up" name="signup">Sign Up</button> [/p] &nbsp;&nbsp;&nbsp; [/p] <button class="mdl-button mdl-js-button mdl-button--raised" disabled id="quickstart-verify-email" name="verify-email">Send Email Verification</button> [/p] &nbsp;&nbsp;&nbsp; [/p] <button class="mdl-button mdl-js-button mdl-button--raised" id="quickstart-password-reset" name="verify-email">Send Password Reset Email</button> [/p] [/p] <!-- Container where we'll display the user details --> [/p] <div class="quickstart-user-details-container"> [/p] Firebase sign-in status: <span id="quickstart-sign-in-status">Unknown</span> [/p] <div>Firebase auth <code>currentUser</code> object value:</div> [/p] <pre><code id="quickstart-account-details">null</code></pre> [/p] </div> [/p] </div> [/p] </div> [/p] [/p] </div> [/p] </main> [/p] </div> [/p] </body> [/p] </html> [/p]

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Yes, thank you for your answer Eren... but I already tried and sadly, I use the construct 3's runtime (with JSON, Tween, BBCode) and the Rex plugins only work with the construct 2's runtime, so it don't works...

  • I withdraw what I said, it's finally work on c3's runtime. This is incredible, thank you very much! ^^

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)