在我决定使用一些更复制的数据来支持某些复杂的查询或只是为了更容易读取数据之后,我想检查更新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
,但我还想使用此信息更新当前用户。我想问一下在这种情况下更新数据库的最佳实践。我应该使用admin SDK编写一些代码来更新所需的数据并运行一次,还是有任何其他建议的方法来执行此操作。
谢谢!
答案 0 :(得分:2)
创建一个这样的方法,您可以立即更新数据:
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);