React Native – хранилище – приложение Firebase «[DEFAULT]» не создано

Я инициализирую свое приложение таким образом, и оно работает отлично, поскольку я могу использовать аутентификацию.

import { initializeApp} from "firebase/app";
import { initializeAuth, getReactNativePersistence } from 'firebase/auth';
import ReactNativeAsyncStorage from '@react-native-async-storage/async-storage';
import { getAnalytics } from "firebase/analytics";
import { GoogleSignin } from '@react-native-google-signin/google-signin';
import { requestTrackingPermissionsAsync } from "expo-tracking-transparency";
import { Settings } from "react-native-fbsdk-next";

const firebaseConfig = {
  apiKey: "",
  authDomain: "-..",
  projectId: "-",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: ""
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);

Однако, когда я пытаюсь использовать хранилище Firebase с этой функцией

import storage from '@react-native-firebase/storage'

export const UploadFile = async(file_uri,name,bucket) => {
    return new Promise((resolve, reject) => {
        try{

            const parts = file_uri.split(/[/\\]/)
            const basename = parts[parts.length - 1]

            if (bucket){
                bucket = firebase.app().storage('gs://'+bucket+'.appspot.com').ref(basename)
            }else{
                bucket = storage().ref(basename)
            }

            bucket.putFile(file_uri)
            resolve(bucket)
        }catch(error){
            console.info('Error when uploading the file '+error)
            reject(error)
        }
    });
}

Я получаю ошибку

Приложение Firebase «[DEFAULT]» не создано — вызовите firebase.initializeApp().

за очередь bucket = storage().ref(basename)

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

спасибо за помощь

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не знаю, почему документ Firebase никогда не обновляется, а рабочее решение никогда не совпадает с тем, что указано в документе. В любом случае, решение: Получите хранилище таким образом

import { getStorage } from 'firebase/storage';

const app = initializeApp(firebaseConfig);
const storage = getStorage(app)

И функция загрузки:

import { ref, uploadBytes } from 'firebase/storage';
import { storage } from '../firebase';
import { path } from '../classes/path';
import { file } from '../classes/file';

export const UploadFile = async (file_uri, path='', unique='') => {
    try {
        // Get the file name
        const parts = file_uri.split(/[/\\]/);
        const basename = parts[parts.length - 1];

        const name = file.uniqueName(basename,unique)
        if (path)
            name = path.join(path,name)

        // Get the file content
        const response = await fetch(file_uri);
        const blob = await response.blob();

        const storage_ref = ref(storage, name);

        // Write the file in firebase
        await uploadBytes(storage_ref, blob)

        return storage_ref;
    } catch (error) {
        console.error('Error when uploading the file ', error);
        throw error;
    }
};

Другие вопросы по теме