当前位置: 首页 > 知识库问答 >
问题:

firebase实时数据库的自动增量Id生成器

谷梁襦宗
2023-03-14
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 }
{
  "user" : {
    "email" : "TEST77@TEST.com",
    "full_name" : "Hossein Heydari",
    "password" : "test",
    "phone_number" : 54,
    "role" : "client"
  }
}

我需要firebase来存储任何模型的自动增量Id数据,我应该做什么?

共有1个答案

公羊曜灿
2023-03-14

所以,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;

您可以在这里查看更多细节。

或者,如果您想创建类似Mongo所做的事情,那么您应该创建一个自定义的,像Mongo一样创建一个类似的键并将其保存在DB中,并且在每次新插入时将该ID添加到模型中。你可以在这里查看。

 类似资料:
  • firebaseDatabase=firebaseDatabase.getInstandatabaseReference=firebaseDatabase.getReference()Query Query=databaseReference.child(“ticket_detail”).orderbychild(“ticket_no”).limittoLast(1);AddListenerFor

  • 我使用Firebase实时数据库作为后端。我希望每个请求最多增加1个。例如: 这不管用。 在前端,我发送“数据1”。我应该如何创建“.validate”规则?

  • 这就是我所拥有的 当程序运行时,会出现一个添加新类别的屏幕,用户必须写入类别的名称和描述,但ID应该是自动的,并且应该在每次用户输入新类别时增加ID。我这样做并没有达到预期效果,它只增加了一次,但由于初始值保持在5,所以它总是6。

  • 问题内容: 有人知道如何从1开始生成,以便下一个对象具有2,依此类推吗? 我尝试了以下方法,但不起作用: 问题答案: 您需要一个 静态的 类成员来跟踪上次使用的索引。确保还实现一个复制构造函数: 更新: 正如@JordanWhite建议的那样,您可能希望使static计数器成为 atomic ,这意味着可以安全地同时使用(即一次在多个线程中使用)。为此,将类型更改为: 增量读取和复位操作变为:

  • 问题内容: 我想在ala SQL Server列中实现标识或自动递增值: 如何才能做到这一点? 问题答案: 正如Orbman所说,实现此目标的标准方法是使用序列。大多数人也将其与插入触发器结合在一起。因此,当插入没有ID的行时,触发器将触发以从序列中为您填写ID。 这是在Oracle中使用触发器的少数情况之一。

  • 我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire