С моим ограниченным пониманием и опытом работы с SQL я не совсем понимаю использование hasChild ()и forEach (); они чувствуют, что принадлежат эталону, а не снимку.
(Я буду использовать hasChild ()для остальной части обсуждения, но концепции взаимозаменяемы.)
Вот мои рассуждения:
appname/users
var users = new Firebase('appname/users')
Но я не могу определить, существует ли ребенок отсюда. Итак, вот что у меня сейчас:
users.child('Fred').once('value', function(snapshot) {
/** waits around forever if Fred doesn't exist */
});
Но это не совсем работает. Так что теперь я должен получить значение пользователей (, которое кажется немного противоречащим -интуитивным, поскольку меня не интересуют пользователи )с чем-то вроде этого:
var users = new Firebase('http://.../appname/users');
users.once('value', function(snapshot) {
snapshot.childExists('Fred', function(exists) {
/* do something here*/
});
});
Я не думаю, что получаю большие накладные расходы, извлекая appname/users
на основе документов, но это выглядит как неприглядный кусок кода, если я просто хочу определить, существует ли ключ «Фред».
Я хотел бы увидеть что-то вроде:
var users = new Firebase('http://.../appname/users');
users.hasChild('Fred', function(exists[, snapshotOfFred]) {
/* do something here*/
});
Есть ли лучший подход к использованию forEach/hasChild? Я пропустил какие-либо важные логические соображения здесь?