Android FirebaseRecyclerAdapter populateViewHolder() 永远不会被调用

2024-01-18

我有一个如下所示的 firebase 数据结构。我正在尝试使用 FirebaseRecyclerAdapter 加载此数据。问题是 populateViewHolder() 没有被调用。对数据库结构的引用有效。

我可以使用 FriendsRef.addValueEventListener 读取数据。我希望使用 FirebaseRecyclerAdapter 避免什么。(代码如下)

数据结构为:

-users  
  |-<uid>
     |-friends
         |-<uid>:name1
         |-<uid>:name2

主 Activity 中的身份验证调用

private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {

        AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        Log.d(getString(R.string.logtag), "signInWithCredential:onComplete:" + task.isSuccessful());

                        // If sign in fails, display a message to the user. If sign in succeeds
                        // the auth state listener will be notified and logic to handle the
                        // signed in user can be handled in the listener.
                        if (!task.isSuccessful()) {
//                            Log.w(TAG, "signInWithCredential", task.getException());
                            Toast.makeText(HomeActivity.this, "Authentication failed.",
                                    Toast.LENGTH_SHORT).show();
                        }
                        // ...
                    }
                });
    }

片段代码:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    setHasOptionsMenu(true);
    View view = inflater.inflate(R.layout.friends_fragment, container, false);
    RecyclerView friendRecyclerView = (RecyclerView) view.findViewById(R.id.friends_recycler_view);

    friendRecyclerView.setHasFixedSize(true);
    friendRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));

    DatabaseReference friendsRef = mActivity.getRootRef().child("users").child(mActivity.getAuth().getCurrentUser().getUid()).child("friends");

    FirebaseRecyclerAdapter<String, ViewHolder> recyclerViewAdapter = new FirebaseRecyclerAdapter<String, ViewHolder>(String.class, R.layout.friends_list_item, ViewHolder.class,  friendsRef) {
        @Override
        protected void populateViewHolder(ViewHolder viewHolder, String model, int position) {
            viewHolder.friendName.setText(model);
        }
    } ;

    friendRecyclerView.setAdapter(recyclerViewAdapter);

    return view;
}

@Override
protected int getContentView() {
    return R.layout.friends_fragment;
}

public static class ViewHolder extends RecyclerView.ViewHolder{
    private TextView friendName;
    public ViewHolder(View itemView) {
        super(itemView);
        friendName=(TextView) itemView.findViewById(R.id.friends_name_list_item);
    }


}

FriendsRef.addValueEventListener:

DatabaseReference friendsRef = mActivity.getRootRef().child("users").child(mActivity.getAuth().getCurrentUser().getUid()).child("friends");

        friendsRef.addValueEventListener(new ValueEventListener() {
                                             @Override
                                             public void onDataChange(DataSnapshot dataSnapshot) {

                                                 for (DataSnapshot data : dataSnapshot.getChildren()) {

                                                     Log.d("tag", data.toString());
                                                 }


                                             }

只需将 xml 中的 RecyclerView 的 layout_height 更改为“match_parent”

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

Android FirebaseRecyclerAdapter populateViewHolder() 永远不会被调用 的相关文章

  • Facebook4j API:搜索

    我正在使用 Facebook4j 通过关键字获取状态 facebook4j conf ConfigurationBuilder fac new facebook4j conf ConfigurationBuilder fac setDebu
  • 使用busybox在后台安装apk

    我可以在 root 设备上使用 busybox 在后台安装 apk 吗 我看到类似的东西 但它不起作用 process install CommandCapture command new CommandCapture 0 chmod 77
  • Android 片段之间的阴影分隔符

    我有一个类似于平板电脑的 ICS Gmail 应用程序的布局 ListFragment左边是内容 右边是内容 我想知道如何构建布局 使两个片段之间有一个阴影分隔符 就像在 Gmail 应用程序中一样 如下所示 另外 由于这适用于这个问题 我
  • Firebase 函数,在用户不活动 15 分钟后运行

    我创建了一个 firebase 存在系统 如图所示在 Firebase 中建立影响力 https firebase google com docs firestore solutions presence文档 现在 我尝试在用户离线 15
  • 地理编码 API 与地理编码器

    在我的应用程序中 我需要使用地理编码 但我不太清楚该使用哪种方法 直到昨天我在URL中添加了参数maps googleapis com maps api geocode json address myparameter sensor fal
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • 动态地将textView添加到线性布局中

    我在这里的某个地方读过这篇文章 但我完全迷失了 但我需要一些帮助 我的应用程序正在将列名称从 sqlite 拉入数组中 我想创建一个文本视图并为每个视图编辑文本 通过数组的大小 我记得在某处读过 您可以将 textViews 变量名称视为数
  • 合并 dex 程序类型已存在时出错:android.support.v4.os.ResultReceiver$MyResultReceiver

    合并dex时出错 以下是依赖项 ext anko version 0 10 5 support lib 1 0 0 alpha1 room lib 1 1 0 dependencies implementation org jetbrain
  • 当 Firebase 函数以 Swift 结束时

    我在我的应用程序中使用 Firebase 它查询大量用户并获取所需的特定数据 但是当它开始查询时 其余功能也继续运行 而不仅仅是查询 所以我无法理解当它结束时 例如在这段代码中 ref observeEventType ChildAdded
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • Android OptionsMenu问题,背景始终透明

    我的选项菜单总是不显示背景 背景是透明的 有谁知道如何摆脱这个 我的失败起源活动是从另一个自定义活动扩展的 我在 eclipse 上有这个项目 选项菜单工作正常 但自从我迁移到 AndroidStudio 后 选项菜单始终是透明的 我尝试更
  • 通知操作而不启动新活动?

    我计划提供一个包含两个操作的提醒通知 一个用于批准登录请求 一个用于拒绝登录请求 通过单击这些操作中的任何一个 我希望向我的服务器发出 HTTP 请求 最重要的是 我不想启动新的 Activity 或根本不想将用户重定向到我的应用程序 Co
  • 如何从图库动态卸载图像?

    我有自定义 ImageView public class ShadowedImageView extends ImageView private Paint mPaint public Bitmap bitmap null private
  • Android项目中使用java获取电脑的IP地址

    我在用ksoap2 android http code google com p ksoap2 android 我需要使用java获取IP地址 这样我就不必每次都手动输入它 我所说的 IP 地址是指 例如 如果我这样做ipconfig使用命
  • Android Jetpack Compose 尺寸随持续时间变化的动画

    如何在 Jetpack Compose 中添加内容大小更改动画的持续时间 尝试使用Modifier animateContentSize 并通过动画规格具有持续时间 但它只是突然进入或退出 没有观察到持续时间 Column Modifier
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • 如何解决android程序中的警告“从不本地读取”

    为什么我收到警告说 The field testscreen ScaleAnimToShow mVanishAfter is never read locally testscreen java testscreen src com tes
  • Android Studio 中自动打开“运行设备”选项卡

    在 Android Studio Flamingo 中有一个名为跑步设备并且它会在每次之后自动打开运行应用程序 有办法禁止这个自动打开吗 我尝试禁用启用物理 Android 设备的镜像选项 但选项卡仍然自动打开 基于此issue https
  • Android Volley - 发布请求 - 无法在线工作

    我试图通过 Volley 发出 POST 请求 它在我的本地主机中工作得很好 但是当我将它移动到网络服务器时 响应为空 Java代码 RequestQueue queue Volley newRequestQueue this String
  • 应用程序关闭时单击 Firebase 通知后打开特定活动/片段

    我知道这个问题似乎重复 但根据我的要求 我在网上搜索了很多帖子 但没有任何对我有用 我的要求 我正在使用 Firebase 来获取推送通知 当应用程序打开时意味着一切正常 但我的问题是 如果有任何推送通知出现 应用程序处于后台 关闭意味着我

随机推荐

  • 如何检查Android GPS是否被禁用[重复]

    这个问题在这里已经有答案了 我有两个文件 MainActivity java 和 HomeFragment java MainActivity 中调用 HomeFragment 中的一个函数 要求用户打开手机上的位置服务 问题是 即使用户已
  • 运行时 AOP 与编译时 AOP

    这两种AOP框架的优缺点是什么 我使用Unity作为我的aop框架 但我猜像postsharp这样的编译时aop框架可能比运行时aop框架有更好的性能 看起来运行时aop框架使用反射来实现注入 我不是 NET 人员 但我了解 Java 生态
  • Yarn add 引发错误 缺少要添加到项目中的包列表

    重新安装 Kubuntu 18 后 我尝试运行我的 vue cli 4 0 5 vuex 3 应用程序 并收到错误 错误缺少要添加到项目中的包列表 serge AtHome mnt work sdb8 wwwroot lar VApps v
  • 在 Xcode 7.2 中使用 PDF 作为图标图像

    我正在尝试在我正在开发的应用程序中使用 PDF 文件作为图标 我遇到的问题是色调颜色不一致 如果我从界面生成器设置按钮图像 则会显示图标图像black在运行时 每次 无论我尝试从界面生成器中设置什么 我尝试通过代码设置按钮图标图像而不是显示
  • Jenkins - 负载统计图奇怪的编码

    我在最新的 Jenkins 上有这个 但图例显示的是奇怪的字符而不是英语 有人知道这可能是什么吗 编码 即使使用其他显示图表的插件也是如此 我在 CentOS Linux 版本 7 4 1708 核心 Jenkins 2 73 1 apac
  • 在球拍中使用 stop-when

    我一直在搞这个程序 它需要一个数字并加 1 我想知道你到底如何使用stop when这里 例如 让它停在 5 点 我想这里需要一个 cond 声明 谢谢 require 2htdp image require 2htdp universe
  • Pandas:添加缺失月份的数据

    我有一个按月划分的客户销售信息数据框 看起来像这样 有多个客户和不同的月份和支出 customer id month year sales 0 12 2012 05 2 58 1 12 2011 07 33 14 2 12 2011 11
  • C#:将基类转换为子类

    我有一个类 NetworkClient 作为基类 using System IO using System Net Sockets using System Threading Tasks namespace Network using S
  • JavaScript,正则表达式,向字符串中包含的所有数字添加前导零

    这个 Perl 脚本是我想在 JavaScript 中实现的 source https stackoverflow com a 2659232 1076407 s 0 9 sprintf 04d 1 ge 明显地sprintf在 JavaS
  • 如何使用nodejs模块http2将http2与ExpressJS集成?

    我正在使用nodejs和express创建一个api 我想将http2与ExpressJS集成 这是我的代码 use strict const http2 require http2 const fs require fs const pa
  • 如何为 jenkins git 插件指定 ssh 密钥

    我正在使用git插件 https wiki jenkins ci org display JENKINS Git Plugin 据称它与 Jenkins 凭证管理功能 集成 凭证 使用 Jenkins 凭证管理功能连接到存储库的凭证 除非允
  • Heroku + Rails + PG:ActiveRecord::StatementInvalid (PG::ConnectionBad: PQconsumeInput() SSL 连接已意外关闭

    我的日志中经常随机收到以下错误 Nov 06 05 31 21 lmrapp app web 2 wbinternacional 0f0965e3 e537 4aed 8f3e 311a222e8fa1 PG ConnectionBad P
  • ngAnimate 1.4.7单元测试不调用动画函数

    我一直在工作本教程 http www sitepoint com angularjs testing tips bootstrap blocks routes events animations 并在谷歌上进行了令人作呕的搜索 但我似乎无法
  • 如何搜索多个pdf文件的内容?

    如何在目录 子目录中搜索 PDF 文件的内容 我正在寻找一些命令行工具 看起来grep无法搜索 PDF 文件 有pdfgrep http pdfgrep org 正如它的名字所暗示的那样 pdfgrep R a pattern to sea
  • Python 截图 2+ 显示器(windows)

    如果连接到多个显示器 如何使用 python 进行屏幕截图 I tried import sys from PyQt4 QtGui import QPixmap QApplication app QApplication sys argv
  • 调整 NSWindow 大小以适合子 NSView

    我有一个空的主 NSWindow 和 5 个 NSView NSView 有不同的按钮和标签等 并且窗口是空的 显示的第一个视图是一个菜单 链接到其他视图并返回 这工作正常并且视图切换得很好 但是 如果 NSWindow 具有一定大小 并且
  • 从 HTML 输入返回应用程序脚本中的数据

    我正在尝试使用 HTMLService 从 google 电子表格启动 html 表单 并将数据从选择输入返回到脚本 我正在用这一行收集数据 但我不确定如何将其返回到脚本文件 我尝试了以下各种迭代 城市 form Projects list
  • 模拟抛硬币一周?

    这不是家庭作业 我有兴趣在 R 中设置抛硬币的模拟 我想运行该模拟一周 R 中是否有一个函数可以让我在一段时间内 例如一周 启动和停止模拟 如果一切顺利的话 我可能想增加模拟周期的长度 例如 x lt rbinom 10 1 1 2 所以要
  • 一个简单的闰年逻辑问题

    public class LeapYear public static void main String args int year Integer parseInt args 0 boolean isLeapYear divisible
  • Android FirebaseRecyclerAdapter populateViewHolder() 永远不会被调用

    我有一个如下所示的 firebase 数据结构 我正在尝试使用 FirebaseRecyclerAdapter 加载此数据 问题是 populateViewHolder 没有被调用 对数据库结构的引用有效 我可以使用 FriendsRef