Насмешливая аутентификация firebase как объекта и функции одновременно? - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь написать минималистичные макеты для аутентификации Firebase, чтобы удовлетворить варианты использования, такие как

  facebookSignIn = async () => {
    try {
      const user = await FacebookLogIn.logIn();
      const credential = firebase.auth.FacebookAuthProvider.credential(user.accessToken);
      await firebase.auth().signInAndRetrieveDataWithCredential(credential);
    } catch (e) {
      Alert.alert("Error", e.message);
    }
  };

У меня так далеко

const firebase = {
  auth: {
    onAuthStateChange: callback => {
      callback({
        user: {
          uid: "123",
          email: "test@email.com"
        }
      });
    },
    FacebookAuthProvider: {
      credential: accessToken => ({ param: "1" });
    }
  }
};

Моя главная проблема сейчас заключается в разнице при выполнении

const credential = firebase.auth.FacebookAuthProvider.credential(user.accessToken);

и

await firebase.auth().signInAndRetrieveDataWithCredential(credential);

вы можете видеть, что auth здесь - это объект и функция одновременно, я не совсем уверен, как я могу высмеивать это: /

1 Ответ

0 голосов
/ 07 мая 2018

В JavaScript функции тоже являются объектами.Вы можете просто добавить нужные вам свойства.

const firebase = {
  auth: function(){
    console.log('foo');
  }
};
firebase.auth.bar = 'bar';
firebase.auth();
console.log(firebase.auth.bar);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...