Во-первых, вы можете сгенерировать уникальный ключ, используя приведенный ниже код
const newID = firebase.database.ref().push().key
Согласно этому ответу , всякий раз, когда вы нажимаете ссылку на базу данных, генерируется новый узел данныхс уникальным ключом, который включает метку времени сервера. Эти ключи выглядят как -KiGh_31GA20KabpZBfa.
Из-за отметки времени вы можете быть уверены, что данный ключ будет уникальным, без проверки других ключей в вашей базе данных.
Во-вторых, выможно добавить элемент в список в базе данных, используя transaction
.
const newID = firebase.database.ref().push().key
//user is user object from firebase auth module
const newDatabaseRouteRef = firebase.database.ref().child('users/' + user.uid + '/ids')
// if null, create a new list with id, if not add newID to list
newDatabaseRouteRef.transaction((currentValue) => {
return currentValue ? currentValue.push(newID) : [newID]
})