Как сохранить ключ каждого элемента в firebase

#javascript #arrays #firebase #react-native #react-native-firebase

#javascript #массивы #firebase #react-native #react-native-firebase

Вопрос:

Я использую firebase в своем проекте react native.Я сохраняю элементы, а затем получаю эти элементы в своем приложении. Но теперь я хочу редактировать и удалять элементы на основе ключа, сгенерированного firebase для каждого элемента, который вы можете видеть в ss. Когда я получаю данные из firebase, я получаю элементы, но не ключ для каждого элемента.Так вот почему я не могу редактировать или удалять элементы, пожалуйста, помогите мне, как это сделать.

введите описание изображения здесь

вот мой код добавления элемента в firebase.

   export const addMeasurement = params => {
  return async dispatch => {
    dispatch(measurementLoading());
    try {
      firebaseService
        .database()
        .ref('/Measurements')
        .push(params)
        .then(res => {
          measurementAdded(res);
        });
    } catch (err) {
      dispatch(measurementFailed(err));
    }
  };
};
  

Вот код для получения элементов из firebase, который был сохранен ранее

  export const getMeasurements = () => {
  return async dispatch => {
    dispatch(measurementLoading());
    try {
      const ref = firebaseService.database().ref('/Measurements');
      ref.on('value', snapshot => {
        const values = snapshot.val();

        if (values !== null) {
          const newFreshArr = Object.values(values);

          dispatch(measurementSuccess(newFreshArr));
        }
      });
    } catch (err) {
      dispatch(measurementFailed(err));
    }
  };
};
  

Ответ №1:

Вы можете получить путь к снимку следующим образом: let path = snapshot.ref.path.toString(); . Затем вы можете вносить изменения в свою базу данных Firebase, используя этот путь. Вот документация по этому поводу:https://firebase.google.com/docs/reference/js/firebase.database .DataSnapshot#ссылка