如何访问firebase db子对象元素?

时间:2017-05-04 07:02:15

标签: javascript firebase firebase-realtime-database

我的firebase数据库结构如下所示,

users
fb-user-key1
    user1-details1
    Tags
        Tag-key1    
            "name":"value"
        Tag-key2
            "name":"value"

fb-user-key2
    user1-details2
    Tags
        Tag-key1    
            "name":"value"

Tag-Key1&用户密钥由firebase使用push()生成。 firebase代码访问内容是,

var fbref = firebase.database().ref("users");
fbref.child("Tags").on("child_added", function(e){
  var Tagobj = e.val().name;
  console.log(Tagobj);
});

这个没有返回任何东西。我无法访问上述数据结构中的name:value对。 ` 添加修改后的代码,

firebase.database().ref("users").on("child_added",function(e‌​) { var Tagobj = e.val().Tags; });

上述代码的输出为output data structure

如何访问该名称值对? firebase键有问题吗? 没有,我错了。感谢您的意见。

1 个答案:

答案 0 :(得分:0)

由于Tags是每个用户的子属性,因此您必须从每个用户对象中读取它。

如果您希望所有用户都拥有Tags,则假设创建用户后每个用户tagsPerUserId = {}; firebase.datatabs().ref('users').on('child_added', function(snap) { tagsPerUserId[snap.key] = snap.value().Tags; // TODO: Notify view that tagerPerUserId is updated and needs to be re-rendered console.log(`Tags for userId ${snap.key}: ${snap.value().Tags}`); }); 未更新,则可以执行以下操作:

Tags

这样,您在创建新用户时也会获得Tags,但您不会获得 import re import urllib.request url = input('Please enter website URL : ') h = urllib.request.urlopen(url) code = h.read() pattern = re.compile(r'<title>(.+)</title>', re.M) title = re.findall(pattern, code) print("%s title is : %s") % (url, title) 现有用户的更新。