Пуш-обещание Firebase никогда не разрешается - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь сохранить объект из моего приложения React Native.Пожалуйста, посмотрите на фрагмент кода ниже.

  const { currentUser } = firebase.auth();

  firebase.database().ref(`/users/${currentUser.uid}/employees`)
    .push({ name, phone, shift })
    .then(() => {
      console.log('Save to Firebase was successful');
    })
    .catch((error) => {
    console.log(error);
  });

Но в консоли Firebase я ничего не вижу.Я удивлен, что тогда и поймать даже не позвонили.Что мне не хватает?Консоль не показывает никаких ошибок.

Мои правила базы данных Firebase:

My Firebase DB Rules

Вот мой просмотр базы данных Firebase в реальном времени:

Firebase realtime DB view

Вопрос: я нажимаю на /users/${currentUser.uid}/employees путь, мне нужно вручную создать узел 'users'?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

В Firebase функция push () генерирует уникальный ключ для каждого нового дочернего элемента, а функции set () или update () вставляют или обновляют данные в узле.

Попробуйте это:

  firebase.database().ref(`/users/${currentUser.uid}/employees`)
    .push()
    .set({ name, phone, shift })
    .then(() => {
      console.log('Save to Firebase was successful');
    })
    .catch((error) => {
    console.log(error);
  });

Или это:

 let niceKey =  firebase.database().ref(`/users/${currentUser.uid}/employees`).push()

niceKey.set({ name, phone, shift })
    .then(() => {
      console.log('Save to Firebase was successful');
    })
    .catch((error) => {
    console.log(error);
  });
0 голосов
/ 28 апреля 2018

Не используйте push для сохранения данных в Firebase, вместо этого используйте set или update.Вот как это работает: -

firebase.database().ref(`/users/${currentUser.uid}/employees`).set({
    name: name,
    phone: phone,
    shift : shift
});

Для получения дополнительной информации посетите: - https://firebase.google.com/docs/database/web/read-and-write

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...