如何使用JavaScript在Firebase Auth中获取特定用户数据对象

7 浏览
0 Comments

如何使用JavaScript在Firebase Auth中获取特定用户数据对象

我需要使用JavaScript通过用户ID(UID)在Firebase身份验证中获取特定用户数据。如果不能通过ID获取用户,至少有没有一种方法可以获取所有用户,然后我可以循环遍历这些用户,并检查用户的ID是否等于该ID。这是可能的吗?

firebase身份验证用户

0
0 Comments

问题出现的原因是,用户在Firebase Authentication中更改了displayName,但是在Firebase Firestore Collection中的相应数据没有得到更新。原因可能是为了安全考虑,Google没有提供这样的解决方案。此外,Firebase还提供了ADMIN SDK,这使得用户管理变得更加复杂。因此,我们需要找到一种解决方案来处理用户数据的更新和删除。

解决方法是创建一个名为"users"的额外集合,将所需数据存储在其中,并将文档的id与auth uids同步。通过这种方式,可以在Firebase Authentication和Firebase Firestore之间保持数据的同步。对于更新用户数据,可以使用以下方法:

// 获取当前用户的uid
var user = firebase.auth().currentUser;
var uid = user.uid;
// 在"users"集合中查找具有相同uid的文档
var userRef = firebase.firestore().collection("users").doc(uid);
// 更新文档中的displayName字段
userRef.update({
  displayName: "New Display Name"
})
.then(function() {
  console.log("User data updated successfully");
})
.catch(function(error) {
  console.error("Error updating user data: ", error);
});

对于通过管理员删除用户的情况,可以使用以下方法:

// 获取要删除的用户的uid
var uid = "user-uid-to-delete";
// 删除"users"集合中具有相同uid的文档
firebase.firestore().collection("users").doc(uid).delete()
.then(function() {
  console.log("User data deleted successfully");
})
.catch(function(error) {
  console.error("Error deleting user data: ", error);
});

通过这些方法,可以在Firebase中使用JavaScript获取特定用户数据对象,并更新或删除该数据。

0