如何在不知道用户ID的情况下获取Firebase用户的发布数据?甚至有可能吗?

时间:2018-07-28 14:41:26

标签: javascript firebase firebase-realtime-database

我正在使用React.js构建一个应用程序,用户可以在其中创建特定的民意测验,并将其保存到firebase。用户自己可以看到所有HIS创建的民意调查的菜单。数据在firebase中的组织方式如下:

Users:  
    -XXXXXX:    (the user UID)
        -YYYYYY:    (firebase's random string name, that represents a single poll)
                options: [1,2,3],
                question: "What color is the sun?",
                values: ["yellow","red","orange"]

        -YYYYYY: ...   (another poll the user created)
        -YYYYYY: ...  (third poll the user created)

现在,每个民意调查位于一个不同的链接,即/ YYYYYY

在民意调查链接网站上,我正在尝试获取当前民意调查的民意调查数据。如果用户未登录(我希望任何人都可以投票),我遇到的问题就是获取数据本身。

是否可以“跳过”创建调查的用户,并到达YYYYYY及其数据?

2 个答案:

答案 0 :(得分:1)

如果您知道民意测验的密钥(示例中的YYYYYY),则可以通过以下方式加载它:

var ref = firebase.database().ref("users");
var query = ref.orderByKey().equalTo("YYYYYY");
query.once("child_added", function(snapshot) {
  console.log(snapshot.key, snapshot.val());
});

答案 1 :(得分:0)

我建议您以其他方式组织民意测验,用户将是民意测验的一个字段(例如,包含用户UID的作者档案)。

无论如何,您仍然可以通过使用users查询var usersRef = db.collection("users");集合来访问民意测验,如此处https://firebase.google.com/docs/firestore/query-data/get-data所述。 然后,您可以对所有XXXXXX用户和每个YYYYYY民意测验的响应进行迭代,直到找到您感兴趣的YYYYYY ID。