firebase 如何在实时数据库中创建ID

gywdnpxw  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(124)

我正在尝试将某些对象的唯一ID添加到我正在实时数据库中输入的项目信息中。
这是我正在尝试实现的代码。

database.ref('item/' + /*Here is where I would add the uniqueUD*/ ).set({
          ItemName: ItemName,
          Address: ItemAddress,
          Industry: ItemIndustry,
          Speciality: ItemSpeciality,
          Description: ItemDescription
        })

我想让数据库看起来像。
(ItemIndex)-(Item ID)- ItemName、ItemAddress、ItemIndustry、ItemSpeciality、ItemDescription

clj7thdc

clj7thdc1#

如果您使用push而不是set,Firebase将为您创建一个ID:

database.ref('item').push({
      ItemName: ItemName,
      Address: ItemAddress,
      Industry: ItemIndustry,
      Speciality: ItemSpeciality,
      Description: ItemDescription
    })

参见文档:https://firebase.google.com/docs/database/admin/save-data#section-push

jyztefdp

jyztefdp2#

引用的.push()方法创建一个新的引用,即使你没有向它传递任何值。从文档中:
如果不传递值,则不会向Database中写入任何内容,子对象将保持为空(但您可以在其他地方使用Reference)。
这意味着你可以使用这个方法创建一个新的引用,而无需向数据库写入任何内容:

const ref = database.ref('item').push();

然后,您可以使用Firebase从ref.key生成的唯一ID。如果需要,您可以将此值包含在数据中。当你准备向同一个ref写入数据时,你可以调用它的.set()方法。

ref.set({
    ItemName: ItemName,
    Address: ItemAddress,
    Industry: ItemIndustry,
    Speciality: ItemSpeciality,
    Description: ItemDescription
});
vuktfyat

vuktfyat3#

2023 v9模块语法示例如何首先获取ID:

const itemRef = ref(database, `users/${userId}/items`)
const addedItem = await push(itemRef)
console.log(addedItem.key, "This is the ID you're looking for")

await set(addedItem, {
    ...{ exampleData: 'example' },
    id: addedItem.key, // You could insert the same ID into the item if you wanted to.
})

相关问题