在写操作中如何使用Firebase数据库push方法生成的密钥?

时间:2019-02-07 19:54:04

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

我正在使用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是通过推送方法生成的唯一密钥。我希望我的postId属性相同-如何实现此目标?

1 个答案:

答案 0 :(得分:3)

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

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

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

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