Я инициализирую свое приложение таким образом, и оно работает отлично, поскольку я могу использовать аутентификацию.
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 и т. д., но безуспешно.
спасибо за помощь



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я не знаю, почему документ 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;
}
};