Чтение данных после записи в Firebase - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь перейти к определенному идентификатору после создания элемента в моей базе данных в реальном времени.

Документация предлагает решение, но оно не работает, как показано.

После использования push() .set () в моей базе данных. Я попытался создать функцию обратного вызова, которая получала бы определенный идентификатор, созданный с помощью метода push. (). set (), а затем перемещалась с этим идентификатором.

db.ref.push().set({
    ...
}).then(function(){
    router.navigate(ref/ + db.ref.key /)
})

После создания нового объекта в этой контрольной точке я хочу использовать идентификатор, созданный firebase, чтобы перейти к определенному маршруту с использованием этого идентификатора.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

set

set ( value , onComplete ) => возвращает firebase.Promise, содержащий void

Таким образом, вы абсолютно правы в том, что вы должны увидеть операцию, разрешенную с помощью обратного вызова, однако обещание не вернет вам никакого ключа.

Однако вам следуетбыть в состоянии связать это событие:

db.ref.push().set({
    ...
}).getKey().then(data => console.log(data))
0 голосов
/ 04 января 2019

Проблема в том, что db.ref.push() возвращает новый объект ссылки с уникальным идентификатором к нему.Вы не получаете значение этого идентификатора.Вы можете реорганизовать вещи так, чтобы это было что-то вроде:

let newref = db.ref.push();
newref.set({
  ...
})
.then( () => {
  // You can use "newref" here
  // The last part of the full reference path is in "key"
  let id = newref.key;

  // Do something with the id as part of your route
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...