Невозможно проанализировать URL Firebase.Пожалуйста, используйте https://<YOUR FIREBASE> .firebaseio.com - PullRequest
0 голосов
/ 25 декабря 2018

Когда я нажимаю на кнопку входа в систему, я получаю эту ошибку:

[19:49:11] [2018-12-25T20:49:57.389Z]  @firebase/database:, FIREBASE 
FATAL ERROR: Cannot parse Firebase url. Please use https://<YOUR 
FIREBASE>.firebaseio.com
- node_modules/@firebase/logger/dist/index.cjs.js:69:32 in 
defaultLogHandler
- node_modules/@firebase/logger/dist/index.cjs.js:159:31 in error
- node_modules/@firebase/database/dist/index.cjs.js:333:20 in fatal
- node_modules/@firebase/database/dist/index.cjs.js:1256:14 in 
parseRepoInfo
- node_modules/@firebase/database/dist/index.cjs.js:15103:38 in 
refFromURL
* src/modules/auth/api.js:24:24 in getUser
* src/modules/auth/api.js:19:32 in <unknown>
- node_modules/@firebase/auth/dist/auth.js:17:105 in <unknown>
- node_modules/@firebase/auth/dist/auth.js:20:199 in Fb
- ... 13 more stack frames from framework internals

Я скопировал и вставил данные конфигурации прямо из Firebase, так что это должно быть правильно, но я все равно получаю эту ошибку.Что может быть причиной этого?Есть ли какой-либо способ, которым URL, который я копирую из моей базы данных, может как-то быть неправильным?

Как вы можете видеть из показанной ошибки, в моем файле api.js в

.then((user) => getUser(user, callback))

и в

database.refFromURL('users').child(user.uid).once('value')

Так вот мой код из api.js такой:

import { auth, database, provider } from "../../config/firebase";

export function register(data, callback) {
    const { email, password } = data;
    auth.createUserWithEmailAndPassword(email, password)
        .then((user) => callback(true, user, null))
        .catch((error) => callback(false, null, error));
}

export function createUser (user, callback) {
   database.refFromURL('users').child(user.uid).update({ ...user })
        .then(() => callback(true, null, null))
        .catch((error) => callback(false, null, {message: error}));
}

export function login(data, callback) {
    const { email, password } = data;
    auth.signInWithEmailAndPassword(email, password)
        .then((user) => getUser(user, callback))
        .catch((error) => callback(false, null, error));
}

export function getUser(user, callback) {
    database.refFromURL('users').child(user.uid).once('value')
        .then(function(snapshot) {

            const exists = (snapshot.val() !== null);

            if (exists) user = snapshot.val();

            const data = { exists, user }
            callback(true, data, null);
        })
        .catch(error => callback(false, null, error));
}

Может кто-нибудь, пожалуйста, помогите, где я пропустил

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Я использовал

database.ref(`users/`+user.uid).once('value')

вместо

database.refFromURL('users').child(user.uid).once('value') 

, и теперь он отлично работает для меня.

0 голосов
/ 26 декабря 2018

Метод refFromURL ожидает полный URL-адрес базы данных.Итак, что-то начинается с https://<YOUR FIREBASE>.firebaseio.com, как показано в сообщении об ошибке.

Вы пытаетесь получить доступ к пути в сконфигурированной базе данных, в этом случае вместо этого следует использовать ref(...):

database.ref('users').child(user.uid).once('value')
...