React Native: какой пакет npm хранилища firebase использовать?

#firebase #react-native #firebase-storage #react-native-firebase

#firebase #react-native #firebase-хранилище #react-native-firebase

Вопрос:

Изучал React native и Firebase.

Вот мой код для инициализации хранилища firebase и получения URL-адреса для пути к хранилищу:

 import { firebase } from '@react-native-firebase/storage';

var firebaseConfig = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "...",
    projectId: "...",
    storageBucket: "...",
    messagingSenderId: "...",
    appId: "...",
    measurementId: "..."
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);


  const storage = firebase.storage();

  let imageRef = firebase.storage().ref('photos/flower.png');
  console.log(imageRef);
  

Я ожидаю imageRef , что он будет содержать URL-адрес файла изображения хранилища Firebase.

Но я получаю сообщение об ошибке:

ОШИБКА TypeError: undefined не является объектом (вычисление ‘_firebase.firebase.storage’)

Я чувствую, что ошибка связана с неправильным импортом имени пакета.

Может ли кто-нибудь подсказать мне, в чем дело?

Ответ №1:

Я ожидаю, что imageRef будет содержать URL-адрес для файла изображения хранилища Firebase.

Во-первых, вы должны следовать примеру в документации.

В основной документации также говорится:

В отличие от Firebase Web SDK, нет необходимости вручную вызывать метод initializeApp с вашими учетными данными проекта.

Таким образом, вам вообще не нужно вызывать initializeApp, если вы все настроили правильно.

ref() возвращает объект ссылочного типа, который является просто указателем на файл. Если вы хотите, чтобы URL-адрес типа HTTPS загружал содержимое этого файла, вам нужно будет использовать его метод getDownloadURL для его получения.

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

let imageRef = storage().ref('photos/flower.png');
imageRef.getDownloadURL().then(url => {
    console.log(url);
})
  

Комментарии:

1. Привет @Doug, даже после того, как вы предложили. Ошибки остаются прежними: ‘TypeError: undefined не является объектом (оценка ‘_firebase.firebase.storage’)’ Не могли бы вы один раз проверить, правильный ли мой импорт? Какие все импорта необходимы здесь?

2. Вы должны следовать примеру в документации. rnfirebase.io/storage/usage#creating-a-reference

3. Спасибо @Doug. Переход по ссылке был полезным.