当前位置: 首页 > 知识库问答 >
问题:

我可以在fiRecovery中设置自定义ID吗?

仇和蔼
2023-03-14

之前我用的是实时DB,现在需要改用fiRecovery

当我在实时数据库中写入数据时,我使用了这种方法。

FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
String userid = firebaseUser.getUid();
reference = FirebaseDatabase.getInstance().getReference().child("Users").child(userid);
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("id", userid);
hashMap.put("email", email);
hashMap.put("username", username);

所以数据会这样显示

  "Users" : {
    "02nfE2JziDgzxZwYpmCwQ20QwQ93" : {
      "email" : "sowtp12pushcivet@gmail.com",
      "id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
      "username" : "AAA"
    },

但是当我使用消防商店时,它将显示这一点

  "Users" : {
    "u93AclSJJiLQBdfcK2st" : {
      "email" : "sowtp12pushcivet@gmail.com",
      "id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
      "username" : "AAA"
    },

我能否将< code > u 93 aclsjjilqbdfck 2 ST 更改为< code > 02 nfe 2 jzidgzxzwypmcwq 20 qwq 93 ,如果可以更改,我该怎么做?

这是我的代码。

db = FirebaseFirestore.getInstance();
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("id", userid);
hashMap.put("email", email);
hashMap.put("username", username);

db.collection("Users").add(hashMap).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Toast.makeText(RegisterActivity.this, "OK", Toast.LENGTH_SHORT).show();
   }
});

共有1个答案

龙昊焱
2023-03-14

当您调用 add() 时,火库会生成一个新的文档 ID。它等效于为实时数据库 API 调用 push()

如果您想指定自己的文档ID,不要调用< code>add,而是传递use document("yourNewId ")。set()改为:

db.collection("Users").document(userid).set(hashMap)...

另请参阅有关设置文档值的 Firebase 文档。

 类似资料:
  • 我在OpenID Connect中使用KeyCloak。 我在与KeyCloak相同的域上有一个应用程序。此应用程序有一个终结点,该终结点将授权代码作为参数,并在响应中设置“KEYCLOAK_IDENTITY”cookie 以启用 SSO。 它有效,但这样做安全吗? 编辑:我的问题是关于饼干的。我解释“为什么”只是为了给出一些背景。 编辑2:对于想要使用这个解决方案的人来说,我真的很关心钥匙斗篷社

  • 问题内容: 我有一个JPA(hibernate)实体: 当我创建一个new时,我知道它应该引用的ID (但没有对象)。我可以仅使用此信息以某种方式创建并保留,还是真的需要: 问题答案: 您可以用来获取相关实体的代理,而无需访问数据库。此代理是延迟初始化的,仅当您查询实体以外的ID时,才会初始化该代理。

  • 我的自定义spring boot starter和作为依赖项使用的spring boot应用程序消费者面临一个问题。我在两份申请中都有。yml但似乎我正在寻找的配置只有在消费者中定义时才有效。 我在starter中的配置如下: 我在自动配置类中定义了这个bean: 拥有此应用程序的使用者可以完美地检索到它。yml和其他变量: 但如果我将其从消费者中删除并放入应用程序中。启动程序bean在创建它们时

  • 问题内容: 我可以在Redis中设置全局TTL吗?每次设置密钥时,都无需设置TTL。 我用谷歌搜索,但找不到任何线索。看来似乎无法完成? 谢谢。 问题答案: 不,Redis没有全局/默认TTL的概念,是的,您必须为每个键分别设置它。但是,根据您的要求和要执行的操作,可能还有其他方法可以实现您的目标。换句话说,您为什么需要它? 例如,如果您想将Redis用作缓存,而不必担心必须删除“旧”项目,则只需

  • 本文向大家介绍我可以在SAP HANA中使用“自定义错误”页面吗?,包括了我可以在SAP HANA中使用“自定义错误”页面吗?的使用技巧和注意事项,需要的朋友参考一下 您是正确的,因为XSA支持自定义错误页面,但传统版不支持自定义错误消息。 如果您需要采取任何方式,那么可以尝试的是,您需要通过负载平衡器或代理解析所有请求,然后显示自定义错误消息。这不是一种简单且可维护的方法。