Как записать данные в определенное место Firebase Web - PullRequest
0 голосов
/ 27 июня 2018

Я хочу записать данные в определенное место в базе данных. Допустим, у меня есть пара пользователей в базе данных. Каждый из них имеет свою личную информацию, в том числе свои электронные письма. Я хочу найти пользователя по электронной почте, то есть по его электронной почте (но я точно не знаю, чья это электронная почта, но кто бы то ни был, что-то делает с информацией этого пользователя). Чтобы быть более наглядным, вот мой пример базы данных.

enter image description here

Теперь, работая над одним из моих файлов javascript, когда пользователь, скажем, name1 меняет свое имя, я обновляю свой объект в javascript и хочу заменить весь объект под идентификатором "-LEp2F2fSDUt94SRU0cx". Короче говоря, я хочу написать этот обновленный объект по пути («Users / -LEp2F2fSDUt94SRU0cx»), не делая это вручную и просто «зная» электронную почту. Таким образом, логика такова: «Идите, найдите пользователя с электронной почтой« name1@yahoo.com »и замените весь объект его новым обновленным объектом». Я пытался использовать orderByChild ("Email"). EqualTo ("name1@yahoo.com"). Set (updated_object), но этот синтаксис не работает, я думаю. Надеюсь, я смог объяснить.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

firebase.database.Query

Запрос сортирует и фильтрует данные в базе данных, поэтому только подмножество дочерних данных включено. Это можно использовать для заказа сбор данных по некоторому атрибуту (например, высота динозавры), а также ограничить большой список предметов (например, сообщений чата) до номера, подходящего для синхронизации с клиент. Запросы создаются путем объединения одного или нескольких методы фильтра, определенные здесь.

// Find all dinosaurs whose height is exactly 25 meters.
var ref = firebase.database().ref("dinosaurs");
ref.orderByChild("height").equalTo(25).on("child_added", function(snapshot) {
  console.log(snapshot.key);
});
0 голосов
/ 27 июня 2018

Первая часть - это запрос, который отделен от поста для обновления. Эта часть запроса для получения значения:

ref.child('users').orderByChild("Email").equalTo("name1@yahoo.com")

Чтобы обновить, вам нужно сделать что-то подобное, когда у вас есть идентификатор пользователя из результата запроса:

ref.child('users').child(userId).child("Email").update(newValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...