2015-01-15 3 views
2

Что-то очень странное происходит всякий раз, когда я пытаюсь получить идентификатор элемента я толкнул в мою базу данных Firebase ... Я использовал код непосредственно из one of their examples:Получить идентификатор Firebase толкаемого объекта неопределенно

var fireBaseRef = new Firebase(FIREBASE_ROOT); 
var id = fireBaseRef.child("flintstones").push(); 
id.set({ 
    first: 'Fred', 
    last: 'Flintstone' 
}, function (err) { 
    if (!err) { 
     //var name = id.key(); 
     console.log("Set with ID: " + id); 
    } 
}); 

когда этот код выполняется все работает, как и ожидалось, кузнечно портал показывает, что данные записаны правильно в базу данных, и я получаю соответствующую консоль JavaScript сообщение:

"Set with ID: https://myfirebaseurl.com/flintstones/-JfjdUW4BT32DMgeuAdt" 

проблема возникает, когда я раскомментировать строку

var name = id.key(); 

Как только я, что я получаю Javascript ошибки, указывающий, что такой метод не существует («Uncaught TypeError: не определено не является функцией.»), Я не знаю, что это происходит, и мне нужно используйте ключевое значение (в данном случае «-JfjdUW4BT32DMgeuAdt») в другом месте.

Может ли кто-нибудь сказать мне, где я ошибся?

+1

Работы для меня: http://jsbin.com/namoqa/1/edit?js,console. Можете ли вы изменить этот jsbin так, чтобы он ломался? –

+0

Большое вам спасибо за ваш очень быстрый ответ. Я скопировал и вставил ваш код в свое рабочее пространство, и он все еще не прошел ... тогда я увидел другой ответ от Rob DiMarco, как только я сменил метод на .name(), он работал отлично! –

ответ

3

Поведение, которое вы видите, будет зависеть от того, какую версию клиентской библиотеки вы используете. Файловые библиотеки Firebase Web/Node.js < 2.0.0 используют FirebaseRef.name(), но это поле было переименовано в пользу FirebaseRef.key() для версии 2.0 и выше. Для получения дополнительной информации см. Журнал изменений here.

+0

Это была проблема. Сохраняя ссылку на изменение для дальнейшего использования, спасибо! –

Смежные вопросы