2013-06-02 30 views
4

我在Firebase的博客上看到了this post,解釋了使用他們的平臺創建關係數據對象的最佳方式。我正在努力將這些概念轉化爲與AngularJS平臺集成的AngularFire。使用AngularFire,可以創建關係型數據庫嗎?或者訪問UniqueIDs?

具體來說,我想顯示具有相似的他們是如何描述它在這個例子中,從他們的崗位單向指針引用關聯的數據集:

var commentsRef = new Firebase("https://awesome.firebaseio-demo.com/comments"); 
var linkCommentsRef = new Firebase("https://awesome.firebaseio-demo.com/links/comments"); 

linkCommentsRef.on("child_added", function(snap) { 
    commentsRef.child(snap.name()).once("value", function() { 
     // Render the comment on the link page. 
    )); 
}); 

問:是否有可能與當前的AngularFile集成,以指向其他數據對象的指針式引用?如果是這樣,你能提供一個例子嗎?

編輯:我覺得我能解決這些問題,如果我可以訪問由AngularFire我的數據生成的唯一ID [見下文]。我如何訪問它們?

enter image description here

回答

1

大問題!

您確實需要訪問唯一ID,並且我們最近添加了一項功能,通過angularFireCollection可以訪問它:https://github.com/firebase/angularFire/pull/26

如果您使用隱式同步方法(angularFire),那麼你已經有了訪問密鑰,只要你指定將收集的類型設置爲「object」的第四個參數:

function MyController($scope, angularFire) { 
    var url = 'https://awesome.firebaseio-demo.com/comments'; 
    var promise = angularFire(url, $scope, 'comments', {}); 
    promise.then(function() { 
    var id = '-lw2NDTiZMFvzEWmSnYn'; 
    console.log($scope.comments[id]); 
    }); 
} 

希望這有助於!

+0

我怎麼能如。使用'angularFire()'添加註釋? – Voles

+16

我不明白這是如何回答這個問題的。您只需將id設置爲文字字符串。你如何從數據庫中獲得實際的ID? –

+0

您迭代JS對象'$ scope.comments'來檢索ID。你也可以調用'Object.keys($ scope.comments)'來獲得一個只有ID的數組。 – Anant

0

是的,你可以訪問該ID!使用下面的代碼!

var chru; 
var ref = new Firebase("https://myapp.firebaseio.com/users/"); 
var sync = $firebase(ref); 
var users= syncSelect.$asArray(); 
$scope.users= users; 
users.$loaded().then(function() { 
    chru = users.length; 
}); 

$scope.specificIdOnSelect = function() { 
    var jj; 
    for (jj = 0; jj < chru; jj++) { 
     var keyer = users.$keyAt(jj); 
     var rec = users.$getRecord(keyer); 

     if ($scope.userSelected== rec.name) { 
      alert("Unique Key of " + $scope.users+ " is " + users.$keyAt(jj)); 
     } 
    } 
}; 

$scope.allIds = function() { 
    var jj; 
    for (jj = 0; jj < chru; jj++) { 
     var keyer = users.$keyAt(jj); 
     var rec = users.$getRecord(keyer); 
     alert("Unique Key of " + $scope.users+ " is " + users.$keyAt(jj)); 
    } 
}; 
相關問題