default.auth (...). коллекция не является функцией - PullRequest
1 голос
/ 19 октября 2019

Я начал получать эту ошибку после редактирования моего кода activ.js и не смог от нее избавиться. Проверил некоторые другие страницы о firebase.auth - это не ошибка функции, но ответы там не помогли. Ошибка в начале файла main.js, начинающегося с «fire.auth ...»

Точное сообщение об ошибке:

TypeError: _config_Fire__WEBPACK_IMPORTED_MODULE_2 __. Default.auth (... ) .collection не является функцией

Мой код fire.js

import firebase from 'firebase';
import 'firebase/firestore'

const config = { /* COPY THE ACTUAL CONFIG FROM FIREBASE CONSOLE */
    my config info here ...
};
const fire = firebase.initializeApp(config);
export default fire;

Мой файл main.js, который выдает ошибку:

import React, {useState,useEffect, useRef, useContext} from 'react'
import fire from '../config/Fire';
//import { UserConsumer } from  './UserContext.js';

//import {UserContext} from '../App'


function useTimes(){
  //const user2 = useContext(UserContext.Consumer)
    const [kullanici,setTimes] = useState([])
    useEffect(()=>{
      fire
            .auth()
            .collection('kullanici')
            .doc('gNfFy0uEsk5OvrZOfkGm')
            .onSnapshot((doc)=>{
                const newTimes = doc.data()
                setTimes(newTimes)
            })

    },[])

    return kullanici
}
function useInterval(callback, delay) {
    const savedCallback = useRef();

    // Remember the latest callback.
    useEffect(() => {
      savedCallback.current = callback;
    }, [callback]);

    // Set up the interval.
    useEffect(() => {
      function tick() {
        savedCallback.current();
      }
      if (delay !== null) {
        let id = setInterval(tick, delay);
        return () => clearInterval(id);
      }
    }, [delay]);
  }

const Main = () => {
  //console.log(firebase.auth().currentUser.uid)
    const kullanici =useTimes()
    let [count, setCount] = useState(0);
    //console.log(new Date().getTime())
    useInterval(() => {
        // Your custom logic here
        setCount(count + 1);
    }, 1000);
    return(
      <div>
        <div>
        <h2>Welcome {kullanici.nick}</h2>
        <li>Silver: <span>{kullanici.silver ? count * kullanici.silver : ''}</span></li>
        <li>Copper: <span id="count">{kullanici.silver ? count * kullanici.copper : ''}</span></li>
        <li>Iron: <span id="count">{kullanici.silver ? count * kullanici.iron : ''}</span></li>
        </div>
        </div>
    )
  }


export default Main

1 Ответ

1 голос
/ 19 октября 2019

Прежде всего, вам необходимо импортировать firebase/auth в ваш файл fire.js.

, а также попытаться импортировать ядро ​​Firebase SDK с помощью firebase/app.

// fire.js

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

...

Это решит ошибку .auth is not a function.

И, наконец, вы пытаетесь связать .collection() с auth(). Если вы пытаетесь прочитать данные из Firestore, вы должны сделать это следующим образом:

// main.js

...

import fire from '../config/Fire';

...

fire
  .firestore()
  .collection('kullanici')

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