【问题标题】:Finding an object by it's unique id in Firebase通过 Firebase 中的唯一 ID 查找对象
【发布时间】: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


【解决方案1】:

如果你有密钥,你可以像这样访问ref.child(id)

正如@FrankvanPuffelen 澄清的那样,然后您将其绑定到您的 AngularJS 范围:

$scope.contact = $firebaseObject(ref.child('-KD3pzA_P3pK0TCzg4zw')); 

如果您还没有密钥,并且需要按姓名或电子邮件查找,则可以使用orderBystartAtendAt

ref.orderByChild('phone').startAt('01239485764').endAt('01239485764');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-02
    • 2020-02-10
    • 1970-01-01
    • 2013-06-22
    • 2022-11-10
    相关资源
    最近更新 更多