【发布时间】:2016-07-04 05:43:44
【问题描述】:
我有一个问题。 Firebase 似乎为使用 push() 方法创建的对象生成唯一 ID。虽然这很神奇,但官方教程似乎忽略了一个简单的问题,即如何检索这样一个基于其唯一 ID 的对象。
{
"contacts" : {
"-KD3p6kdEUbg38X7Osfm" : {
"address" : "Whitley rd 22, Northampton",
"email" : "somethingsatsomething@soso",
"name" : "George Booney",
"notes" : "Sounds like a serious businessman",
"phone" : "01239485764",
"website" : "http://www.workingatthepumps.com"
},
"-KD3pzA_P3pK0TCzg4zw" : {
"address" : "Common Avenue 22, Birmingham",
"email" : "johnyoeias@nowhereas.com",
"name" : "John Doe",
"notes" : "Sounds like a serious businessman",
"phone" : "44582314864",
"website" : "http://www.wearelost.com"
}
}
}
调用它的代码如下所示:
var ref = new Firebase("https://contactsmgr.firebaseIO.com/contacts");
return {
get: function() {
return ref;
},
find: function() {
// the required code to refer to the unique id
}
};
有没有一种简单的方法可以做到这一点,还是我创建的 JSON 结构本身就错误?
【问题讨论】:
-
您好,如果您有密钥,您可以像这样访问 ref.child('-KD3pzA_P3pK0TCzg4zw')。如果没有,并且您需要按姓名或电子邮件查找,那么您可以使用 orderBy 和 startAt 和 endAt。如果不清楚,请告诉我,以扩大答案。希望这会有所帮助,问候!
-
@KN_ 感谢您的快速回复!不幸的是,当我尝试将它附加到模型时(使用 angularjs,在我的例子中是 $scope.contact = Contact.find(); )模型不显示任何属性...
-
如果对象没有属性,但它存在,可能是该对象尚未填充。你从 ref.once('value') 得到什么结果?问候!
-
您想在这里收听什么唯一 ID?正如@KN_ 所说:一旦您知道唯一 ID,就可以进行简单的查找:
$scope.contact = $firebaseObject(ref.child('-KD3pzA_P3pK0TCzg4zw'))。 -
@Abbadiah。你好!我需要查看整个代码,才能告诉你一个确切的答案,但如果你按照弗兰克所说的去做,你可能已经在范围内了。检查这个(如果你没有)firebase.com/docs/web/libraries/angular/guide/…,它解释了同步对象。问候!!
标签: javascript angularjs json firebase