javascript - 无法解析 Firebase 网址。请使用 https ://<YOUR FIREBASE>. firebaseio.com

标签 javascript firebase react-native firebase-realtime-database react-native-firebase

当我点击登录按钮时出现此错误:

[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));
}

谁能帮帮我,我错过了什么

最佳答案

我用过

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

代替

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

现在对我来说效果很好。

关于javascript - 无法解析 Firebase 网址。请使用 https ://<YOUR FIREBASE>. firebaseio.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53925298/

相关文章:

javascript - 在 Javascript 中使用 parseFloat 添加时结果不正确

android - Firebase:如何实时捕获数据

ios - firebase pod 安装的版本少于现有的最新版本

ios - 如何在用户登录时确认凭据? (在 Firebase 上)

react-native - SegmentedControlIOS for android in react-native

reactjs - 在调度时使用异步等待

javascript - 如何使用replace()插入反斜杠(\)字符?

javascript - Window.open 函数允许在将 resizable 属性设置为 "0"后调整窗口大小

javascript - 如何使用强大的 Node js获取文件扩展名?

iphone - React Native 博览会在没有 Mac 的情况下创建 iOS 应用程序?