【问题标题】:Is there any way to specify the auto-generated key that firebase makes when you push an object to the rtdb?当您将对象推送到 rtdb 时,有什么方法可以指定 firebase 生成的自动生成的密钥?
【发布时间】:2021-12-19 20:19:56
【问题描述】:

我正在尝试将某些内容推送到 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("/");
        });
    }

是否有类似标题值或其他类型的值来指定它而不是使用自动生成的唯一键?我很感激任何回应。

【问题讨论】:

    标签: javascript reactjs firebase-realtime-database


    【解决方案1】:

    告诉 Firebase 生成唯一密钥的是您自己的代码,因为您使用的是 POST 方法。如saving data 上的文档中所述:

    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",
            }
        }
    )
    

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 2017-08-22
      • 2013-05-28
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多