Как исправить 'Object (...) не является функцией' в ref (). Set () для Firebase? - PullRequest
0 голосов
/ 06 апреля 2019

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

Я гарантировал, что использую правильный синтаксис и методы. Все определено.

Вот ошибка в моей консоли: Ошибка консоли

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 (...) не является функцией

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

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

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 06 апреля 2019

Попробуйте вместо этого импортировать 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();

В противном случае вы можете использовать child () с экспортом ref:

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

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...