Реакция приращения пожарного депо дает ошибку типа - PullRequest
0 голосов
/ 24 октября 2019

Я хочу увеличить значение числового поля в моей базе данных пожарного депо при нажатии кнопки. Я настроил кнопку onClick, но когда я нажимаю, она дает мне эту ошибку:

TypeError: Невозможно прочитать свойство 'increment' из неопределенного

Я не могупоймите, что я сделал неправильно.

Вот мой код:

import React,{useState,useEffect, useRef, useContext} from 'react'
import UserContext from  './UserContext.js';
import fire from '../config/Fire';
import copper from '../img/coppernew.jpg'
function useTimes(){
  const user = useContext(UserContext)
  const [kullanici,setTimes] = useState([])
  useEffect(()=>{
    fire
      .firestore()
      .collection('kullanici')
      .doc(user)
      .onSnapshot((doc)=>{
          const newTimes = doc.data()
          setTimes(newTimes)
      })
  },[])

  return kullanici
}

function upgradecopper(){
  var userUid = fire.auth().currentUser.uid;
  console.log(userUid);
  var db = fire.firestore();
  var copperincrease =  db.collection("kullanici").doc(userUid);
  copperincrease.update({
    copper:fire.firestore.FieldValue.increment(1)
  });
}
const Mine = () => {
    const kullanici =useTimes()
    return(
      <div className="mine">
        <div>
        <ul className="a">
        <ul className="dik2"><li><button onClick={()=>upgradecopper()}>Upgrade Copper Mine</button>(LVL: {kullanici.copper})</li><li><span><img src={copper} alt="copper"/></span></li></ul>
        </ul>
        </div>
        <li>Account: <span>{kullanici.email} </span></li>
      </div>
      )
    }

export default Mine

Мой Fire.js

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



const config = { 
    (there is my api info)
};
const fire = firebase.initializeApp(config);
export default fire;

Новый файл Fire.js:

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



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

1 Ответ

0 голосов
/ 24 октября 2019

Вы экспортируете экземпляр FirebaseApp. Но increment объявлено с константой FieldValue.

Так что вам также нужно импортировать firebase в основной файл, а затем использовать firebase.firestore.FieldValue.increment(1), как показано здесь .

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