Javascript Angularfire-检索数组中所有对象的唯一ID
我在Firebase中有两个不同的数组:第一个是“一般帖子”,第二个是“用户最喜欢的帖子” 当用户想要将一篇文章放到收藏夹中时,我将“General post”中这篇独特文章的所有数据复制到具有相同ID的“The favorite post by user” 问题是,当帖子名称更改时,他只在“一般帖子”中更改,在“用户最喜欢的帖子”中保持不变 因此,我尝试在“General post”中仅检索帖子名称,如下所示:Javascript Angularfire-检索数组中所有对象的唯一ID,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我在Firebase中有两个不同的数组:第一个是“一般帖子”,第二个是“用户最喜欢的帖子” 当用户想要将一篇文章放到收藏夹中时,我将“General post”中这篇独特文章的所有数据复制到具有相同ID的“The favorite post by user” 问题是,当帖子名称更改时,他只在“一般帖子”中更改,在“用户最喜欢的帖子”中保持不变 因此,我尝试在“General post”中仅检索帖子名称,如下所示: var postRef = new Firebase("https://myapp
var postRef = new Firebase("https://myapp.firebaseio.com/posts")
var userFavoriteRef = userRef.child($scope.user_id).child("favorite_posts")
$scope.favoritePosts = $firebaseArray(userFavoriteRef)
var favoritePosts = $firebaseArray(userFavoriteRef)
userFavoriteRef.once("value", function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var key = childSnapshot.key()
$scope.key = childSnapshot.key()
postRef.child($scope.key).child("name").once('value', function(snap) {
console.log(snap.val())
$scope.name = snap.val()
})
})
})
但我的控制台日志中有“null”。。。而且它不工作
也许我的逻辑是错误的
你觉得怎么样?我读到你了。。。谢谢 最好采用不同的方法来存储数据。不要有两个数据副本,只需要一个具有唯一id的副本。然后在每个用户上,您可以引用他们喜欢的帖子的唯一id。这使您能够仅在一个位置更新数据 例如,您可以使用如下数据结构:
myFirebase
- users
-user1
-user2
-user3
-favorites
-unique2 (reference to post, not the actual post)
-unique4
- posts
-unique1
-unique2
-unique3
-unique4
因此,您只需拥有数据的一个副本,然后从您的用户对象引用它来检索您正在查找的内容。对该帖子的修改反映在引用该帖子的所有地方。你有没有给我举个例子?因为我不明白我该怎么做…我明白你的想法,这就是我想做的。但我不知道该怎么做…抱歉,我没有时间写一个正确的代码响应。您可以在用户收藏夹上使用firebase数组,并将其设置为应用程序中的变量,然后循环该数组并执行firebase.once()以获取用户收藏夹中每个唯一id的值。将它们推送到一个作用域变量,该变量作为ng repeat同步到应用程序的前端。这是一个相当沉重的交易,虽然随着你的收藏夹数量的增长,但适合现在的需要。当我这样做时,这是一个空div。。。我只是“ID:true”,但我不知道如何显示一般帖子的详细信息。。。