Ошибка: операция отката уже выполняется. Когда я пытаюсь прочитать данные из firebase из приложения React - PullRequest
0 голосов
/ 04 августа 2020

эй, я только что запустил электрон js и попытался подключиться к firebase, я использую реакцию в машинописном тексте.

Когда я пытаюсь прочитать данные из firebase, я получаю сообщение об ошибке

Я пробовал подход в документации firebase по следующей ссылке https://firebase.google.com/docs/firestore/quickstart

Error: A backoff operation is already in progress.
    at ExponentialBackoff.backoffAndWait (D:\projects\vugha\Membership\app\node_modules\@google-cloud\firestore\build\src\backoff.js:164:35)
    at Firestore._retry (D:\projects\vugha\Membership\app\node_modules\@google-cloud\firestore\build\src\index.js:977:31)
Caused by: Error
    at Firestore.getAll (D:\projects\vugha\Membership\app\node_modules\@google-cloud\firestore\build\src\index.js:755:23)
    at DocumentReference.get (D:\projects\vugha\Membership\app\node_modules\@google-cloud\firestore\build\src\reference.js:199:32)
    at Home._this.loginClick (http://localhost:1212/dist/renderer.dev.js:1355:40)
    at HTMLUnknownElement.callCallback (http://localhost:1212/dist/renderer.dev.js:2564:14)
    at Object.invokeGuardedCallbackDev (http://localhost:1212/dist/renderer.dev.js:2613:16)
    at invokeGuardedCallback (http://localhost:1212/dist/renderer.dev.js:2668:31)
    at invokeGuardedCallbackAndCatchFirstError (http://localhost:1212/dist/renderer.dev.js:2682:25)
    at executeDispatch (http://localhost:1212/dist/renderer.dev.js:2765:3)
    at executeDispatchesInOrder (http://localhost:1212/dist/renderer.dev.js:2790:5)
    at executeDispatchesAndRelease (http://localhost:1212/dist/renderer.dev.js:5654:5)

Но я могу записывать данные в firebase, Любые идеи о том, где мне не хватает

/* eslint-disable promise/always-return */
/* eslint-disable @typescript-eslint/ban-types */
/* eslint-disable react/destructuring-assignment */
/* eslint-disable react/no-unused-state */
/* eslint-disable prettier/prettier */
import React from 'react';
import { Link } from 'react-router-dom';
import routes from '../constants/routes.json';
import styles from './Home.css';

const admin = require('firebase-admin');
const serviceAccount = require('../marinamembers-dd141799d80d.json');

if (!admin.apps.length) {
  admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
  });
}

class Home extends React.Component<{},any>{

  constructor(props) {
    super(props);
    this.state = {
      username: '',
      password: '',
      alertText: '',
    };
  }

 loginClick = () => {

  const db = admin.firestore();

  db.collection('users').doc('hi').get().then((userData) => {
    console.log(userData.data);
  }).catch((e) => {
    console.log(e);
  });
 }

  render(){
    let inputStyle = { opacity: '0' };

    if(this.state.alertText !== ''){
      inputStyle = { opacity: '1' };
    }

    return (
      <div className={styles.home}>
        <div style={inputStyle} className={styles.alert}>
          <div>{this.state.alertText}</div>
          <span>&times;</span>
        </div>
        <div className={styles.main}>
          <div className={styles.container} data-tid="container">
            <h2>Home</h2>
            <Link to={routes.COUNTER}>by Vugha Technologies</Link>
          </div>
          <div className={styles.login} data-tid="login">
            <h2>Login</h2>
            <input onChange={(event) => {this.setState({username: event.target.value});}} type="text" id="loginName" name="loginName" placeholder="User Name" />
            <input onChange={(event) => {this.setState({password: event.target.value});}} type="password" id="loginPassword" name="loginPassword" placeholder="Password" />
            <button onClick={this.loginClick} type="button">Login</button>
          </div>
        </div>
      </div>
    );
  }
}

export default Home;

1 Ответ

0 голосов
/ 04 августа 2020

Проверьте, как вы обрабатываете вход в систему и не попадаете ли вы в какую-либо firebase quota .

Быстрая репликация вашего кода отбрасывает, что проблема возникает при чтении документов из firestore.

const firebase = require("firebase");
require("firebase/firestore");
firebase.initializeApp({
    projectId: 'project123'
  });

var db = firebase.firestore();
db.collection("users").get().then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
    console.log(`${doc.id} => ${doc.data()}`);
    });
});
...