Я хотел бы поделиться некоторым кодом в моем стороннем проекте, который реализовал функции, которые вы упомянули выше.Однако мне жаль, что полный доступ к исходному коду проекта недоступен.
Шаг 1. Загрузите файл изображения, пока пользователь отправляет изображение.
import firebase from 'react-native-firebase';
const upload = async (filepath: string, filename: string, filemime: string) => {
const metaData = { contentType: filemime };
const res = await firebase
.storage()
.ref(`gcs-folder-name-here/${filename}`)
.putFile(filepath, metaData); // put image file to GCS
return res;
};
Шаг 2. После вызоваupload
функция, которую вы должны быть в состоянии извлечь URL-адрес изображения из ответа и сохранить его обратно в базу данных реального времени Firebase.
import firebase from 'react-native-firebase';
const userId = firebase.auth().currentUser.uid;
const res = await upload(`image.JPG`, `absolute/path/to/image.JPG`, `image/jpeg`); // function in step 1
const data = {
name: 'User Name'
photo: res.downloadURL, // retrieve image URL
};
firebase.database().ref('users/' + userId).set(data);
Надеюсь, это поможет.