# #javascript #reactjs #firebase-realtime-database
Вопрос:
Я пытаюсь что-то вставить в 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("/");
});
}
Есть ли какое-либо значение заголовка или какое-либо другое значение, чтобы указать его вместо автоматически сгенерированных уникальных ключей? Я ценю любые ответы.
Ответ №1:
Это ваш собственный код, который сообщает Firebase генерировать уникальный ключ, потому что вы используете POST
метод. Как указано в документации по сохранению данных:
POST
: Добавить в список данных в нашей базе данных Firebase. Каждый раз, когда мы отправляем POST-запрос, клиент Firebase генерирует уникальный ключ, напримерfireblog/users/<unique-id>/<data>
Если вы хотите указать полный путь самостоятельно, вы можете использовать PUT
, который задокументирован как:
PUT
Запись или замена данных по определенному пути, напримерfireblog/users/user1/<data>
.
Поэтому, когда вы указываете PUT
, вы указываете весь путь для записи, Firebase не будет генерировать уникальный идентификатор под путем, а просто запишет указанное вами значение в указанный вами путь.
В вашем существующем коде:
fetch(
"url that I put in real code/user1.json", // 👈
{
method: "PUT", // 👈
body: JSON.stringify(studentData),
headers: {
"Content-Type": "application/json",
}
}
)