【问题标题】:How to use key generated by firebase database push method in write operation?如何在写操作中使用firebase数据库推送方法生成的密钥?
【发布时间】:2019-02-07 19:54:04
【问题描述】:

我正在使用 react、redux 和 firebase。我的操作如下:

export function addPost(postData) {
    firebase.database().ref('posts').push().update({
        title: postData.title,
        text: postData.text,
        userId: firebase.auth().currentUser.uid,
        postid: ?????????
    })
    return {type: "ADD_POST", payload: postData}
}

我想在 firebase 数据库中创建类似这样的内容:

LY7iT1sgmJvjCmBh1GZ: {
    title: some title,
    text: some text,
    postid: LY7iT1sgmJvjCmBh1GZ
}

LY7iT1sgmJvjCmBh1GZ 是通过 push 方法生成的唯一密钥。我希望我的 postId 属性相同 - 如何实现?

【问题讨论】:

    标签: javascript reactjs firebase firebase-realtime-database redux


    【解决方案1】:

    push() 返回一个Reference,其key 属性是客户端上随机生成的密钥:

    const ref = firebase.database().ref('posts').push();
    const key = ref.key;
    

    然后你可以在你的数据中使用它:

    ref.set({
        ...
        postid: key
    });
    

    【讨论】:

    • 这里是解释如何获取推送生成的唯一密钥的文档的链接:firebase.google.com/docs/database/admin/…
    • @jkerr838 你确定 OP 在这里使用的是 Admin SDK 而不是客户端 SDK?
    • 不确定,我猜可能是 Node.js SDK 或 Javascript 客户端。很难说,因为 Javascript 现在无处不在 ?
    • @jkerr838 如果它是节点,我希望通过传统上称为admin 的对象进行访问。在客户端,您会得到一个名为firebase 的对象,这就是我们在此处看到的。大多数情况下,我很犹豫是否将某人派往可能令人困惑的文档。
    猜你喜欢
    • 2018-08-28
    • 2019-01-28
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    相关资源
    最近更新 更多