Могу ли я управлять уникальным ключом / идентификатором, который генерируется, когда я помещаю объект в массив Firebase?

#javascript #firebase #firebase-realtime-database #angularfire

#javascript #firebase #firebase-realtime-database #angularfire

Вопрос:

Я использую $add() метод AngularFire, который вызывает under the hood push() , для добавления дочернего объекта к родительскому.

В документации Firebase говорится, что push() этот метод:

Генерирует новое дочернее местоположение с использованием уникального ключа и возвращает на него ссылку Firebase.

Я хотел иметь контроль над уникальным ключом или идентификатором, который генерируется для объекта, который я нажимаю. Например, я хотел добавить константу к случайному идентификатору, а затем сохранить ее. Возможно ли это?

Комментарии:

1. на данный момент, насколько я знаю, это невозможно

2. можете ли вы использовать здесь ванильную firebase или вы ограничены использованием API AngularFire?

Ответ №1:

Вызов push() — это чисто клиентская операция. Итак, вы можете:

 var newRef = ref.push();
var newKey = newRef.key();
var realRef = ref.child("myPrefix_" newKey);
realRef.set({ title: 'tadaaa', body: 'New child with a push ID and a custom prefix' });
  

Комментарии:

1. С накладными расходами на удаление newRef местоположения, которое является избыточным после сохранения realRef . Хорошая работа @Frank, спасибо 🙂