Один из возможных подходов - поддерживать счетчик, и каждый раз, когда вам нужно сгенерировать новый идентификатор, увеличивайте этот счетчик в транзакции и считывайте значение:
Следующее должно выполнить уловка:
//Declare a function that increment a counter in a transaction
function getId() {
var counterRef = firebase.database().ref('counter');
return counterRef.transaction(function(currentId) {
return currentId + 1;
});
}
//Call the asynchronous getID() function
getId().then(function(transactionResult) {
var newId = transactionResult.snapshot.val();
console.log(newId);
firebase.database().ref('ss/xx').set({id: newId});
});
Вам не нужно создавать узел counter
, он будет создан автоматически при первом вызове функции getId()
.