Почему не работают мои Javascript приглашения Tag Game firebase - PullRequest
0 голосов
/ 04 августа 2020

/**
 * The Runnerscreen Page
 */

import App from '../lib/App';
import BasicTools from '../lib/basicTools';
import Firestore from '../lib/firestore';

// classes used
const basic = new BasicTools();
const firestore = new Firestore();
// zeker
const runnerscreenTemplate = require('../templates/runnerscreen.hbs');

export default () => {
  // set the title of this page (defineren pagina)
  const title = 'YOURTAG';
  const message = 'Geef  de volgende code in die je krijgt van de tagger.';

  // render the template (sure) duidelijk maken voor de hbs
  App.render(runnerscreenTemplate({
    title, message, loginbackpage: true,
  }));

  // users in lobby
  App.firebase.getAuth().onAuthStateChanged((currentUser) => {
    const code = basic.Selector('.a-runnercode');

    const joinBtn = basic.Selector('.a-button__start');

    // functie van snapshot user

    if (currentUser) {
      joinBtn.addEventListener('click', () => {
        // storage the code in the localstorage

        const codeinput = code.value;
        // localStorage.setItem('code', codeinput);
        // const code2 = localStorage.getItem('code');
        // console.log(code2);
        firestore.GetData('user').get().then((snapshot) => {
          snapshot.docs.forEach((doc) => {
            const runners = [];
            const runner = doc.data().displayName;
            runners.push(runner);
            if (currentUser.uid === doc.id) {
              firestore.UserDb(currentUser.uid).update({
                currentGame: code.value,
              });
            }

            // localStorage('profiles', JSON.stringify(runners));
          });
        });

        firestore.GetData('game').get().then((gamesnap) => {
          if (gamesnap.docs.filter((doc) => doc.id === codeinput)) {
            console.log(gamesnap.docs.filter((doc) => console.log(doc.id)));
            // console.log(codeinput);
            firestore.GetData('Gamehistory').get().then((snapshot) => {
              const gamehistory = snapshot.docs.filter((doc) => doc.gameId);

              if ((gamehistory === codeinput)) {
                // user id already existes?
                // console.log('test');
                const results = snapshot.docs.filter((doc) => doc.uid !== currentUser.uid);
                // console.log(results);
                if (results.length > 0) {
                  const games = results.filter((result) => result.gameId === codeinput);
                  console.log(games);
                  if (games.length > 0) {
                    firestore.Gamehistory().set({
                      gameId: codeinput.toString(),
                      userId: currentUser.uid,
                    });
                  } else {
                    App.router.navigate('/roomTaggerscreen');
                    console.log('game already made');
                  }
                } else {
                  firestore.Gamehistory().set({
                    gameId: codeinput.toString(),
                    userId: currentUser.uid,
                  });
                }
              }
            });
          } else {
            console.log('Game does not existes');
          }
        });
      });
    }
  });
};

Я уже много пробовал, вы видите это в моем коде ниже. Но почему-то мои инвайты пока не работают. Может быть, у кого-то из вас есть хорошее решение или оно поможет мне на правильном пути. Это для школьного проекта, и я должен сделать игру с тегами. Я делаю его снова и снова, даже кода не существует. База данных gamehistory заполнена кодом, который я ввел.

...