Screen1.js

import React,{useEffect} from 'react'
import {View,Text} from 'react-native'
import * as firebase from 'firebase/app';
import '@firebase/firestore';

const Screen1 = props =>{

    useEffect(() => 
    {
        var dbh = firebase.firestore().collection("Jots").doc("note");
        dbh.set({name:"pradeep"}) //The yellow warning is popped up in this line.
    }); 

    return(
             <View>
                <Text>Title</Text>
             </View>
    )
}

Konsole

[Unhandled promise rejection: ReferenceError: Can't find variable: atob]

Stack trace:
  node_modules\@firebase\firestore\dist\index.cjs.js:23101:0 in <global>
  http://192.168.0.108:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:131203:60 in fromBase64String


Ich habe gerade die Anleitung in der Expo-Dokumentation befolgt, weiß aber immer noch nicht, warum dieses Problem auftritt. Benötigen Sie eine klare Erklärung dazu. Und was ist atob variabel?

13
Pradeep 23 Feb. 2020 im 14:01

3 Antworten

Beste Antwort

Ich habe versucht, ein Downgrade durchzuführen, aber das ist für mich keine Lösung. Ich weiß nicht warum.

Der globale Import von base64 in die app.js hat dieses Problem behoben.

import {decode, encode} from 'base-64'

if (!global.btoa) {  global.btoa = encode }

if (!global.atob) { global.atob = decode }

Vielen Dank für Ihre Antworten.

6
Pradeep 25 Feb. 2020 im 03:08

Ich habe eine Problemumgehung gefunden. Ich habe immer noch einen Fehler auf ihrer Seite. Sie haben gerade vor 2 Tagen Version 7.9.1 veröffentlicht. Versuchen Sie, 7.9.0 zu verwenden.

Garn hinzufügen firebase@7.9.0

Ich erstelle ein Problem dafür. Folgen Sie hier.

3
papay0 24 Feb. 2020 im 03:05

Hat für mich gearbeitet! Dank papay0 stimmt tatsächlich etwas mit Version 7.9.1 nicht.

npm install firebase@7.9.0
expo r -c # restard expo without cache

Sie können rm -rf ./node_modules/ && npm i

3
Edweis 24 Feb. 2020 im 12:47