app.auth (...). signInWithCredential не является ошибкой в ​​базе данных функций - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь добавить логин google в мое приложение js firebase. Я получаю следующую ошибку: app.auth (...). SignInWithCredential не является функцией

Вот код на сервере

    var credential = firebase.auth.GoogleAuthProvider.credential(id_token);
    return app.auth().signInWithCredential(credential);

На клиенте

 // We need to register an Observer on Firebase Auth to make sure auth is initialized.
        var unsubscribe = app.auth().onAuthStateChanged((firebaseUser) => {
            unsubscribe();
            // Check if we are already signed-in Firebase with the correct user.
            // Build Firebase credential with the Google ID token.
            var credential = firebase.auth.GoogleAuthProvider.credential(googleUser.getAuthResponse().id_token);
            // Sign in with credential from the Google user.
            firebase.auth().signInWithCredential(credential).catch( (error) => {
                // Handle Errors here.
                var errorCode = error.code;
                var errorMessage = error.message;
                // The email of the user's account used.
                var email = error.email;
                // The firebase.auth.AuthCredential type that was used.
                var credential = error.credential;
                console.dir(errorMessage);
            }).then( (success) => {
                console.dir(success);

                var id_token = googleUser.getAuthResponse().id_token;

                axios.post('/auth/google-login', {
                    id_token: id_token
                }).then(response => {
                    var result = response.data;
                    if (result.status === "ok") {
                        this.setState({complete: true});
                    } else if (result.error) {
                        this.setState({error: result.error});
                    }
                }).catch(error => {
                    console.dir(error);
                    this.setState({error: "error"});
                });
            });
        });

Что я делаю не так?

В верхней части файла nodejs у меня есть

var app = require('./base');

где base:

var serviceAccount = require("./service-account-file.json");

const app =   fadmin.initializeApp({
    credential: fadmin.credential.cert(serviceAccount),
    databaseURL: "https://test.firebaseio.com"
});
module.exports = app;

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Функция signInWithCredential является частью JavaScript SDK Firebase

В SDK Firebase JavaScript реализован клиент . side библиотеки, используемые приложениями, использующими службы Firebase.

Firebase Admin SDK предназначен для работы на сервере или в другой привилегированной среде. Admin SDK не включает функции входа в систему.

0 голосов
/ 06 октября 2019

Привет, есть подсказки, что проблема начинается с версии узла 6.21. что app.auth (). signInWithCredential (credential) Не работает

Это работает в v6.2.0.

Попробовать signInWithEmailAndPassword Использовать последнюю версию узла

...