Firebase检索当前子项然后将其设置为另一个Android子项的子项

2023-12-08

** EDITED **

我需要 Firebase 方面的帮助。我需要做的是:

  1. 创建一个名为的新数据库引用Tokens(与客户和工人一致),并在代币下;
  2. 根据当前用户的子级(例如木匠、管道工或电工)创建另一个新的数据库引用

当前代码:

    FirebaseDatabase db = FirebaseDatabase.getInstance();

    DatabaseReference tokens = db.getReference(Common.token_table);

    Token token = new Token(FirebaseInstanceId.getInstance().getToken());
    //if user is already logged in, will update token
    tokens.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
            .setValue(token);

当前数据库

我需要这样:

看图片

更新的截图


要解决这个问题,您需要获得uid经过身份验证的用户如下所示:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

有了这个uid,您可以在活动中需要的任何地方使用它。所以要添加tokenId根据您的数据库结构,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
String tokenId = FirebaseInstanceId.getInstance().getToken();
rootRef.child("Tokens").child("Carpenters").child(tokenId).setValue(true);

你的数据库结构将如下所示:

Firebase-root
    |
    --- Tokens
          |
          --- Carpenters
                  |
                  --- "uid1": true

根据您的编辑,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
String tokenId = FirebaseInstanceId.getInstance().getToken();
rootRef.child("Tokens").child("Plumbers").child(uid).child("token").setValue(tokenId);

enter image description here

最终答案:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
String tokenId = FirebaseInstanceId.getInstance().getToken();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference workersRef = rootRef.child("Workers");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            if (ds.child(uid).exists()) {
                rootRef.child("Tokens").child(ds.getKey()).child(uid).child("token").setValue(tokenId);
            }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
workersRef.addListenerForSingleValueEvent(valueEventListener);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase检索当前子项然后将其设置为另一个Android子项的子项 的相关文章

随机推荐

  • 在 Windows 8.1 中安装 virtualenvwrapper-powershell,导入模块失败

    我正在尝试遵循指南here 我被困在Import Module virtualenvwrapper PowerShell 不断给我错误 import module 指定的模块 virtualenvwrapper 不是 已加载 因为在任何模块
  • 未找到 AWS ec2 winreg

    我正在尝试从亚马逊 EC2 大型实例运行 python 应用程序 然而 它在 scipy 中抱怨 因为它找不到名为 winreg 的东西 我不知道如何重新配置 它 所以它不再是问题 python2 app py Running on htt
  • Chrome 扩展如何在页面底部添加浮动栏?

    我正在创建一个需要注入浮动元素的 chrome 扩展 即position fixed 在页面底部 我的要求是 我需要从内容脚本访问其中的元素 这是因为我将事件附加到按钮 以便用户可以从浮动栏在当前选项卡上执行操作 我希望它的样式保持独立于当
  • 显示斯坦福 NER 置信度分数

    我使用斯坦福 NER CRFClassifier 从新闻文章中提取命名实体 为了实现主动学习 我想知道每个标记实体的类的置信度分数是多少 显示示例 地点 0 20 人员 0 10 组织 0 60 其他 0 10 这是我从文本中提取命名实体的
  • 启动 ASP.NET 表单身份验证

    我开始学习 ASP NET 表单身份验证 并且正在寻找一篇好文章来帮助我入门 我之前听说 ASP NET 表单身份验证使用大量数据库表 前面带有aspnet 但是我发现的任何例子都没有显示这一点 例如我认为有一个aspnet users t
  • 创建数据框时如何解决 scala.MatchError

    我有一个具有复杂结构行的文本文件 我正在使用客户转换器 它将给定的字符串 行 转换为 Pojo 类 countryInfo 转换后 我正在构建 DF POJO 类有一个字段 它是自定义类型列表 GlobalizedPlayTimeWindo
  • 调用unique_ptr子类继承的模板构造函数

    这不是关于模板构造函数甚至调用继承的模板构造函数的问题的重复 它具体是关于在 unique ptr 模板的类实例 的子类中调用继承的构造函数 问题 为了使代码更容易理解 我使用using在这个例子中 using B std unique p
  • 使用XSLT输出多个文件

    我正在尝试获取一个我发现的使用 XSLT 2 0 输出多个文件的示例 将 Saxon B 9 7 0 1 与 Java 1 6 一起使用时 出现以下错误 C Documents and Settings Administrator Desk
  • 以字节数组为键的ReduceByKey

    我想使用 RDD 对Tuple2
  • Tensorflow 将数据从 tfrecords 正确读取到小批量中

    我正在尝试将数据从 csv 转换为 tfrecords 然后以小批量读取它并执行一个简单的 MLP 但我遇到了一些我无法弄清楚的错误 运行时错误 尝试使用关闭的会话 其次是 TypeError 提要的值不能是 tf Tensor 对象 可接
  • Jenkins 使用 groovy 为作业添加权限

    我需要向特定用户添加一些权限 读取 构建 工作空间 取消等 到很多作业 我想知道是否有一种方法可以使用 groovy 脚本而不是手动执行此操作 我尝试了上述解决方案 他们nearly工作了 我的所有尝试都会导致当前内存中的权限反映新设置 但
  • 如何将 ORMLite 与抽象类一起使用?

    我有一个基类Peripheral 课程Sensor and Master是的扩展Peripheral 我需要 ORMlite 来实例化之前保存的 Peripheral 对象 显然任何实例化的尝试Peripheral反思将导致ClassIns
  • Pentaho Spoon - 根据字段内容输出到多个文件

    我一直在尝试根据特定字段的值将 pentaho 转换的结果拆分为多个文件 但没有任何运气 例如 包含以下内容的结果集 姓氏 名字 国家 地区 奥巴马 巴拉克 美国 卡梅伦 大卫 英国 布莱尔 托尼 英国 将导致创建 2 个输出文件 USA
  • 如何使用 HTTPS 获取网站内容

    使用 ssl HTTPs 的网站示例 https www eb2a com 1 我尝试使用 file get contents 获取其内容 但不起作用并且给出错误 ex 2 我尝试使用 fopen 但不起作用并且给出错误 ex 3 我尝试使
  • SQL:动态变量名称

    我试图在存储过程中设置名称是动态的变量 DECLARE var01 varchar 50 DECLARE var02 varchar 50 DECLARE var30 varchar 50 DECLARE sql varchar max D
  • 如何使用 Three.js SSAO 着色器?

    我正在尝试使用 SSAO 后处理着色器渲染场景 没有任何错误 但我看不出使用和不使用 SSAO 通道渲染的场景有任何区别 我像这样初始化渲染器 Create WebGL Renderer var renderParameters antia
  • 如何读取#shadow-root(用户代理)下的文本

    我正在使用 Selenium Python 来自动化网页 我正在尝试从 shadow root 用户代理 下的输入字段获取文本 我使用的Xpath driver find element by xpath p calendar span i
  • 在 LINQ to Entities 中将字符串转换为 int?

    我必须转换一个string价值int 但 LINQ to Entities 似乎不支持这一点 对于以下代码 我收到错误 var query from p in dc CustomerBranch where p ID Convert ToI
  • 使用选项卡处理 Ionic 3 中的后退按钮

    This 问题及其答案 复制如下 提供了一个在 Ionic 中处理后退按钮的解决方案 但该解决方案仅在直接从其他页面推送时才有效app component 在这种情况下调用canGoBack and getActive on this na
  • Firebase检索当前子项然后将其设置为另一个Android子项的子项

    EDITED 我需要 Firebase 方面的帮助 我需要做的是 创建一个名为的新数据库引用Tokens 与客户和工人一致 并在代币下 根据当前用户的子级 例如木匠 管道工或电工 创建另一个新的数据库引用 当前代码 FirebaseData