通过 ID 从 Firebase 检索 Java 对象

2024-04-22

我正在编写一个 Android 应用程序,我正在尝试检索该类的对象User.java按 Firebase 相关表中的 ID。我想知道如何从Java端获取它,只要我尝试了中所述的示例Firebase 官方文档 https://www.firebase.com/docs/android/guide/retrieving-data.html但他们都不适合我。

以这个SO问题为例,我想要一个具有以下接口的方法:

public User readUser(String userId);

换句话说,我想执行:

readUser(-lnnROTBVv6FznK81k3n)

并检索关联的User object

Thanks

-------------------------------------------------- - - - - - - 编辑 - - - - - - - - - - - - - - - - - - - ------------------------:

我设法用这段代码获得了值:

public void retrieveUser(final String email){
        firebaseUsersRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) {
                    if(messageSnapshot.getKey().equals(Email.encodeID(email))){

                        retrievedUser = messageSnapshot.getValue(User.class);
                        break;
                    }
                }
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) { }
        });
    }

请不要检索 User 是一个类attribute,因此field。我正在从代码访问该字段,但即使我看到它采用调试器上的值,它在调用代码上为空.

有什么提示吗?我不能直接在方法本身中返回它吗?:

public User retrieveUser(final String email);

Thanks


这就是灵魂,但我没有将其放入方法中。

final String uid = "your Uid here"; 
        // Get a reference to users
        Firebase ref = new Firebase(Constants.FIREBASE_URL_USERS);
        // Attach an listener to read our users
        ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {

                for (DataSnapshot user: snapshot.getChildren()) {
               //this is all you need to get a specific user by Uid
                    if (user.getKey().equals(uid)){
                        wantedUser = user.getValue(User.class);
                    }
               //**********************************************

                }
                Log.i(TAG, "onDataChange: " + wantedUser.getName());
            }
            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 ID 从 Firebase 检索 Java 对象 的相关文章

随机推荐

  • VSCode 终端任务不使用 zsh 配置文件

    我正在尝试在 VSCode 中的窗口加载上运行任务 其中终端打开并且nvm use yarn dev默认运行 但是 运行此 shell 任务似乎不会加载我的 zsh 配置文件 我运行任务得到的输出是 The terminal process
  • Chome 61、ChromeDriver 2.32 单击移动设备模拟器的元素会抛出 WebDriverException:未知错误:元素在该点不可单击

    我的测试在 Chrome 60 和 ChromeDriver 2 31 中完美运行 但在 Chrome 更新到 61 版本后 我必须将 ChromeDriver 更新到 2 32 现在我收到零星的 org openqa selenium W
  • IFrame 事件在 HTML 中可以正常执行,但在 HTA 中则不行

    单击 iframe 内的按钮时 此 HTML 文件会显示消息对话框
  • 如何在 Strapi 中安全地设置数据库密码?

    Strapi 框架 据我了解 要求在启动时提供数据库密码 通常 密码在database js文件 像这样 module exports env gt defaultConnection default connections default
  • 托管对象中的标量类型仅适用于 iPhone 5

    属性 Latitude 是 LatitudeLongitude 类的标量类型 无法为其生成 setter 方法 当我为托管对象生成代码时 我收到一条消息 询问是否需要原始数据类型的标量属性 我应该使用它吗 我想让这个应用程序与 iPhone
  • 使用php获取两个时间/日期之间的差异?

    我想使用 php 找出两个日期之间的时差 以分钟为单位 其格式为 d m Y H i 14 04 2009 12 15 使用 strtotime 将时间解析为时间戳 然后简单地从另一个中减去一个 之后 您可以使用数学函数获取分钟数 天数等
  • 当高阶参数保留时,如何删除模型中的低阶参数?

    问题 只要高阶参数 即交互作用 保留在模型中 我就无法删除模型中的低阶参数 例如主效应参数 即使这样做 模型也会被重构 并且新模型不会嵌套在更高的模型中 请参阅以下示例 因为我来自我使用的方差分析 contr sum d lt data f
  • .NET 有成功的 profibus 通信吗?

    有没有人聊成功了profibus http www profibus com 来自 NET 应用程序 如果您这样做了 您使用什么设备 卡来完成此操作 应用程序是什么 以及您是否使用任何类型的预先存在或可用的代码 我们没有使用过Profibu
  • 如何通过 Python 将 csv 数据帧上传到 azure?

    我正在使用 Python 和 Pyspark 并且想要将 CSV 文件上传到 azure blob 存储 我已经有一个由代码生成的数据框 df 我想做的是接下来的事情 Dataframe generated by code df Creat
  • C++ 特征值/向量分解,只需要快速的前n个向量

    我有一个 3000x3000 协方差相似矩阵 在其上计算特征值 特征向量分解 它是一个 OpenCV 矩阵 我使用cv eigen 完成工作 然而 我实际上只需要前 30 个特征值 向量 我不关心其余的 从理论上讲 这应该可以显着加快计算速
  • 托盘栏中打开多个图标

    我正在开发一个 Windows 应用程序 当我运行该应用程序时 托盘栏上会出现多个图标 当我将鼠标悬停在这些图标上时 它们就会消失 有人知道为什么会发生这种情况吗 protected override void OnClosed Event
  • 在 ASP.NET 身份框架中更改时刷新当前用户的角色?

    使用 VS 2013 标准 MVC 模板和身份提供程序框架 用户已登录 我有 UserManager AddToRole User Identity GetUserId Members Line X RedirectToAction Ind
  • 无法通过 Godaddy 服务器在 ASP.NET 中发送电子邮件

    我有一个托管在 Godaddy 上的 ASP NET 应用程序 我想从中发送电子邮件 当它运行时 我得到 不允许使用邮箱名称 服务器响应是 抱歉 您所在位置的中继被拒绝 代码和Web config的重要部分如下 msg new MailMe
  • 防止 RichTextBox 自动滚动

    我有一个使用 RichTextBox 控件实现的只读数据记录窗口 我希望能够禁用用户单击控件时发生的自动滚动 以便用户可以选择特定日志进行复制 粘贴操作或其他操作 然而 一旦用户单击 RichTextBox 它就会自动滚动到底部 这使得这变
  • 在上下文中绘图时如何翻转坐标?

    我从 UIImage 创建一个上下文 然后使用 CGContextDrawImage bitmapContext CGRectMake 0 0 originalImage size width originalImage size heig
  • 适用于 BlackBerry 的 QR 码阅读器

    是否有 BlackBerry 库 组件 开源或商业 可集成到我自己的应用程序中充当 QR 码阅读器 我想将它完全集成到我的应用程序中 或者 有没有办法使用开源中兴图书馆 http code google com p zxing 与相机结合使
  • UIViewController 的 viewDidAppear 在模式关闭后不会被调用

    UIViewController 视图 A 通过将另一个视图控制器 视图 B 作为模态控件调用来调用它 自我呈现模态视图控制器 视图是动画的 TRUE 视图 B 通过调用而存在 自我解雇ModalViewControllerAnimated
  • 禁用 youtube api 的全屏

    我有一个带有片段的应用程序 在这些片段内我有框架布局 我在其中添加了 YouTubePlayerSupportFragment 但是当我单击全屏时 会引发此异常 java lang RuntimeException 无法启动活动 Compo
  • 使用 Spring 映射嵌套 json 和 POJO

    我正在实现一个 REST API 它使用 json 发送和接收数据 我对这个 API 设计完全陌生 我正在使用 Spring 框架和 requestbody responsebody 进行映射 最初 我有一个这样的 pojo public
  • 通过 ID 从 Firebase 检索 Java 对象

    我正在编写一个 Android 应用程序 我正在尝试检索该类的对象User java按 Firebase 相关表中的 ID 我想知道如何从Java端获取它 只要我尝试了中所述的示例Firebase 官方文档 https www fireba