firebase - 添加更多非规范化后更新 Firebase 数据库当前数据的最佳实践

标签 firebase firebase-realtime-database

在我决定使用更多重复数据来支持某些复杂查询或只是为了更轻松地读取数据后,我想检查更新 Firebase 数据库中当前数据的最佳和推荐做法。例如,我的 Firebase 数据库中有用户列表,每个用户看起来像

users
 -KGvMIPwul2dUYABCDEF
   countryCode: 1
   id: -KGvMIPwul2dUYABCDEF
   mobileNumber: 1231231234 
   name: Varun Gupta

我一直在根据用户的手机号码查询当前数据。现在,我还需要根据国家/地区代码和手机号码的组合查询用户。因此,我决定添加一些重复的数据以使查询变得容易,新用户看起来像

users
 -KGvMIPwul2dUYABCDEF
   countryCode: 1
   id: -KGvMIPwul2dUYABCDEF
   mobileNumber: 1231231234 
   name: Varun Gupta
   mobileNumberWithCC: 11231231234

我将为所有新用户提供 mobileNumberWithCC,但我也想用此信息更新当前用户。我想询问在这种情况下更新数据库的最佳实践。我是否应该使用管理 SDK 编写一些代码来更新所需的数据并运行一次,或者是否有其他建议的方法来执行此操作。

谢谢!

最佳答案

创建一个这样的方法,您可以在其中立即更新数据:

private static void updateUser(String userId) {
    Map<String, Object> map = new HashMap<>();
    map.put("/users/" + userId + "/", new HashMap<>().put("mobileNumber", 1231231234));
    map.put("/users/" + userId + "/", new HashMap<>().put(mobileNumberWithCC, 11231231234));
    yourReference.updateChildren(map);
}

或者更简单:

yourReference.child(users).child(userId).child(mobileNumber).setValue(1231231234); yourReference.child(users).child(userId).child(mobileNumberWithCC).setValue(11231231234);

关于firebase - 添加更多非规范化后更新 Firebase 数据库当前数据的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43156136/

相关文章:

ios - 如何以正确的方式从 firebase 数据库加载图像

javascript - 非规范化 Firebase 数据以进行标签搜索

java - Firebase 第一次不工作?

java - 列出 android 上 firebase 存储目录中的文件

android - 在 ListView 中显示 firebase 子对象

javascript - 无法获取 firebase 用户 ID

android - java.util.HashMap 无法转换为 com.google.android.gms.maps.model.LatLng

android - 即使在 goOffline() 和 keepSynced(false) 之后,Firebase 数据库仍然有少量下载

java - Firebase 休息 API 过滤器查询

javascript - 如何解决 Reactjs 和 Firebase Google Cloud Firestore 中发生的此错误?