【问题标题】:How to get firebase's user's posted data without knowing user id? Is it even possible?如何在不知道用户 ID 的情况下获取 firebase 用户发布的数据?甚至可能吗?
【发布时间】:2018-07-28 23:00:17
【问题描述】:

我正在使用 React.js 构建一个应用程序,用户可以在其中创建某个投票,并将其保存到 firebase。用户自己可以看到他创建的所有民意调查的菜单。数据在 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 及其数据?

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案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());
    });
    

    【讨论】:

    • 我按照你的建议做了,正确的 YYYYY。但是该应用程序没有记录任何数据或错误(我已经在 componentDidMount() 中完成了)
    【解决方案2】:

    我建议您以不同的方式组织您的投票,用户将是您投票的一个字段(例如,包含用户 UID 的作者归档)。

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

    【讨论】:

    • 两个答案都很棒!谢谢,我正在处理中
    猜你喜欢
    • 1970-01-01
    • 2019-07-05
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    相关资源
    最近更新 更多