Firebase实时数据库中的自动增量ID生成器

Posted

技术标签:

【中文标题】Firebase实时数据库中的自动增量ID生成器【英文标题】:auto increment Id generator in firebase real-time database 【发布时间】:2021-07-22 12:48:32 【问题描述】:

我正在使用以 express.js 作为后端的 firebase 实时数据库。 这是我的数据保存 sn-p 代码:

const db = require('./firebase_connection').firebaseDatabase

async function saveData(req, model) 
    await db.ref(model).set(req)
    return "statusCode": "201", "message": "Inserted successfully"


module.exports =  saveData 

这是 json 输出:


  "user" : 
    "email" : "TEST77@TEST.com",
    "full_name" : "Hossein Heydari",
    "password" : "test",
    "phone_number" : 54,
    "role" : "client"
  

但我还需要一个自动添加到数据库的 ID,就像 MongoDB 拥有的 _id 一样

我需要 firebase 为任何模型存储具有自动增量 ID 的数据,我该怎么办?

【问题讨论】:

【参考方案1】:

因此,firebase 确实提供了一种在您推送更改时获取唯一密钥的方法,我不确定您是否尝试过:


postsRef.push(
  author: "gracehop",
  title: "Announcing COBOL, a New Programming Language"
);

// Generate a reference to a new location and add some data using push()
var newPostRef = postsRef.push();

// Get the unique key generated by push()
var postId = newPostRef.key;

您可以查看here了解更多详情。

或者,如果您想创建类似于 Mongo 所做的那样,那么您应该创建一个自定义的,创建一个类似 Mongo 所做的密钥并将其保存在数据库中,并在每次新插入时将该 ID 添加到模型中。您可以查看here。

【讨论】:

以上是关于Firebase实时数据库中的自动增量ID生成器的主要内容,如果未能解决你的问题,请参考以下文章

我在访问子节点时遇到问题。 (firebase 实时数据库 - 增量报告)

iOS Swift 中的 firebase 实时数据库推送等价物是啥?

可以将服务器端逻辑添加到 firebase 以实现自动增量密钥吗?

使用猫鼬生成自动增量字段?

如何在不在 firebase 实时数据库上生成 firebase id 的情况下发布我的数据?

sphinx 增量索引 实现近实时更新