2016-11-04 1 views
0

Я новичок в firebase и занимаюсь созданием приложения ToDo. До сих пор это мой код:Firebase set new unique ID

Код:

var getUserRef = firebase.database().ref('users'); 

getUserRef.on('child_added', function(data) { 
    var name = data.child("name").val(); 
    var email = data.child("email").val(); 
    $('#loadData').append(`<tr><td>${name}</td><td>${email}</td><td>Edit Remove</td></tr>`); 
}); 

function addUser() { 
    var database = firebase.database(); 
    var name = $('#name').val(); 
    var email = $('#email').val(); 
    var newID = 4; // How can this be incremented? 
    database.ref('users/' + newID).set({ 
     name: name, 
     email: email 
    }); 
} 

Структура данных:

enter image description here

Как вы можете видеть, каждый раз я создаю новый пользователь, я вручную изменяя переменную newID.

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

Есть ли способ сделать это в google firebase?

ответ

0

У вас есть список предметов. Если у вас есть такой список, он является общим для use Firebase's push() method to add new items to it. Это создаст хронологический ключ, который гарантированно будет уникальным для всех клиентов, даже в тех случаях, когда некоторые клиенты могут временно потерять свое сетевое соединение, пока они добавляют данные. Эти идентификаторы push не так читаются, как индексы вашего массива, но они рекомендуются для добавления элементов в список.

Это сказано; вы не имеете дело с каким-либо списком здесь, это список пользователей. Если вы используете Firebase Authentication для управления учетными записями пользователей и проверки подлинности, пользователи имеют встроенный идентификатор с именем uid. В этом случае имеет смысл хранить предметы под их естественным ключом, поэтому в их случае uid.