Ошибка типа undefined не является объектом (оценивает «Wu.getRandomValues») - PullRequest
3 голосов
/ 04 апреля 2020

Это код, который я реализовал для добавления данных в коллекцию:

import FirebaseKeys from "./config";
import firebase from "firebase";
import "@firebase/firestore";

class Fire {
  constructor() {
    firebase.initializeApp(FirebaseKeys);
  }
  addPost = async ({ text, localUri }) => {
    const remoteUri = await this.uploadPhotoAsync(localUri);
    const desc = text;

    return new Promise((res, rej) => {
      // console.log("THIS FIRESTORE" + this.firestore);
      const dbh = firebase.firestore();

      // this.firestore.collection("posts").add({
      //     text: desc,
      //     uid: this.uid,
      //     timestamp: this.timestamp,
      //     image: remoteUri
      //   })

      dbh
        .collection("posts")
        .doc("feed")
        .set({
          text: desc,
          uid: this.uid,
          timestamp: this.timestamp,
          image: remoteUri
        })
        .then(ref => {
          res(ref);
          console.log("EVERYTHING IS FINE HERE");
        })
        .catch(error => {
          console.log("ERROR HERE TOO");

          rej(error);
        });
    });
  };

  uploadPhotoAsync = async uri => {
    console.log(this);

    const path = "Date.jpg";
    return new Promise(async (res, rej) => {
      const response = await fetch(uri);
      const file = await response.blob();

      let upload = firebase
        .storage()
        .ref(path)
        .put(file);
      upload.on(
        "state_changed",
        snapshot => {},
        err => {
          console.log("ERROR IN PHOTO UPLOAD");

          rej(err);
        },
        async () => {
          const url = await upload.snapshot.ref.getDownloadURL();
          res(url);
          console.log("IMAGE IS UPLOADING FINE");
        }
      );
    });
  };
  get firestore() {
    return firebase.firestore();
  }

  get uid() {
    return (firebase.auth().currentUser || {}).uid;
  }

  get timestamp() {
    return Date.now();
  }
}

Fire.shared = new Fire();
export default Fire;

Я создаю приложение, используя expo response native и использую firebase для манипулирования данными. Но при использовании функции для добавления данных в коллекцию, она показывает ошибку, как

undefined не является объектом (оценка 'Wu.getRandomValues')

Помогите мне кому-нибудь

СКРИНШОТ ОШИБКИ

Ответы [ 4 ]

2 голосов
/ 05 апреля 2020

Обновление: проблема решается здесь и должна быть исправлена ​​в v7.13.3. Ранее я заявлял, что снижение до firebase v7.9.0 решило проблему. Я обнаружил, что проблема не существует до v7.13.2. Таким образом, мы можем понизить до версии 7.13.1. Тем не менее, мы должны полностью удалить firebase, чтобы это работало.

Я столкнулся с той же ошибкой в ​​expo и firebase. Я использую Expo версии 37. Чтобы решить эту проблему, мне пришлось понизить версию Firebase, используя следующие команды в каталоге моего приложения:

npm remove --save firebase 
npm install --save firebase@7.13.1

Если я использую Firebase версии 7.13.2, я получаю эту ошибку:

undefined не является объектом (оценка 'Wu.getRandomValues')

0 голосов
/ 08 апреля 2020

Ответ, данный здесь (понижение) сработал. Однако в моем случае после понижения версии я увидел, что настоящей ошибкой была ошибка прав доступа (производственный режим).

Таким образом, реальная проблема заключается в том, что эта ошибка маскирует любую реальную ошибку. Надеюсь, это скоро исправят.

0 голосов
/ 04 апреля 2020

Та же проблема здесь. Я узнал, что мой клиент expo на android был обновлен Google Play. Последняя версия использует expo sdk 37. Я только что запустил обновление expo в моем проекте, и все снова работает

0 голосов
/ 04 апреля 2020

Комментарий к другому вопросу имеет решение: у меня была такая же проблема. Понизил версию Firebase до @ 7.12.0, и она снова заработала.

...