Сначала я хотел бы узнать, каков наилучший подход к поиску записи, и обновить ее другой информацией.
Я не уверен, является ли это лучшим подходом или нет, нодля вашей ситуации я бы настроил свою базу данных таким образом
users
-- unique user id - 1
-- name
-- email
-- posts
-- unique post id
-- unique user id - 2
-- name
-- email
-- posts
-- unique post id
// and so on
Тогда я бы использовал идентификатор пользователя для изменения имени следующим образом.
var database = admin.database();
var name = req.body.name;
var uid = req.body.uid;
var userRef = database.ref('users/' + uid);
userRef.update({name : name})
.then(() => {
console.log("Update Successfull")
})
.catch(error => {
console.log(error);
});
Я предполагаю, что ваша база данных организованатаким образом:
users
-- pxTYaszxcsauniqueId1
-- email
-- name
-- posts
-- unique post id
-- abcdeFFFaKauniqueId2
-- email
-- name
-- posts
-- unique post id
// and so on
В этом случае я бы использовал электронную почту, чтобы найти документ, делая что-то вроде этого:
// Get a reference to the database service
var database = admin.database();
var name = req.body.name;
var email = req.body.email;
var ref = database.ref("users").orderByChild("email").equalTo(email);
ref.once("value").then(function(snapshot) {
snapshot.forEach(function(childSnapshot) {
childSnapshot.ref.update({
"name" : name
}).then(function() {
console.log("Success")
});
// Cancel enumeration
return true;
});
})
Опять же, это предполагает, что вы организовалибаза данных.Если вы организуете БД другим способом, приведенный выше код не будет работать.Если он отличается, пожалуйста, добавьте способ, которым вы организовали БД, в вопросе, который вы опубликовали.