如何在Firebase的ref()。set()上修复“ Object(...)不是函数”?

时间:2019-04-05 21:41:25

标签: javascript reactjs firebase firebase-realtime-database

我正在尝试为Firebase中新创建的用户添加自定义信息。我正确使用了ref()。set(),由于某种原因,它告诉我这不是一个函数。我想念什么?

我已确保使用正确的语法和方法。一切都已定义。

这是我的控制台中的错误: Console Error

TypeError: Object(...) is not a function 
at writeUserName (db.js:4)
at SignUp.js:54

这是我的Firebase配置: Firebase Config

import firebase from 'firebase/app';
import 'firebase/database';
import 'firebase/auth';

const config = {
  apiKey: "AIzaSyDuhQeHZTJOaKdqJhasEKq0jLs4Cv6VZwk",
  authDomain: "yokrapp.firebaseapp.com",
  databaseURL: "https://yokrapp.firebaseio.com",
  projectId: "yokrapp",
  storageBucket: "yokrapp.appspot.com",
  messagingSenderId: "303116446076"
};

firebase.initializeApp(config);

export const firebaseAuth = firebase.auth;
export const database = firebase.database();
export const ref = firebase.database().ref();

这是引发错误的代码: ref().set() -> Object(...) is not a function

import { ref } from '../config';

export const writeUserName = (userId, name) => {
  ref('users/' + userId).set({
    name,
  });
};

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试从配置文件中导入database并与现有的writeUserName函数一起使用:

import { database } from '../config';

export const writeUserName = (userId, name) => {
  database.ref('users/' + userId).set({ name });
};

与当前导入ref一样,您有效地做到了:

firebase.database().ref().ref('users/' + userId).set();

否则,您可以在ref导出中使用child()

import { ref } from '../config';

export const writeUserName = (userId, name) => {
  ref.child('users/' + userId).set({ name });
};

希望有帮助!