是否有任何方法可以指定firebase在将对象推送到rtdb时生成的自动生成键?



我正试图将一些东西推送到firebase rtdb,我想在其他地方很容易地访问它。这就是我用来添加到rtdb的内容:

function addStudentHandler(studentData) {
fetch(
"url that I put in real code",
{
method: "POST",
body: JSON.stringify(studentData),
headers: {
"Content-Type": "application/json",
}
}
)
.then (() => {
history.replace("/");
});
}

是否有像标题值或其他类型的值来指定它,而不是有自动生成的唯一键?感谢您的回复。

是您自己的代码告诉Firebase生成唯一密钥,因为您使用的是POST方法。如文档中关于保存数据的规定:

POST:添加到Firebase数据库中的数据列表中。每次我们发送POST请求时,Firebase客户端都会生成一个唯一的密钥,如fireblog/users/<unique-id>/<data>

如果您想自己指定完整的路径,您可以使用PUT,文档如下:

PUT将数据写入或替换到已定义的路径,如fireblog/users/user1/<data>

所以当您指定PUT时,您指定了要写入的整个路径,Firebase不会在路径下生成唯一的ID,而只会将您指定的值写入您指定的路径。


在你现有的代码中:

fetch(
"url that I put in real code/user1.json", // 👈
{
method: "PUT",                        // 👈
body: JSON.stringify(studentData),
headers: {
"Content-Type": "application/json",
}
}
)

最新更新