当我从实时数据库读取数据时,它只获取用户名并将 imageurl 获取为“null”但是我在实时数据库中有 url

Posted

技术标签:

【中文标题】当我从实时数据库读取数据时,它只获取用户名并将 imageurl 获取为“null”但是我在实时数据库中有 url【英文标题】:When I read data from Realtime database it fetch just username and fetch imageurl as "null" however i have url in Realtime database 【发布时间】:2021-06-06 13:09:17 【问题描述】:

当我从实时数据库读取数据时,它只获取用户名并将 imageurl 获取为“null”,但是我在实时数据库中有 URL。这是代码。

 root.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() 
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) 
                for (DataSnapshot dataSnapshot: snapshot.getChildren())
                    String userName =dataSnapshot.getValue(PostModel.class).getUserName();
                    String imageUrl=dataSnapshot.getValue(PostModel.class).getImageUrl();
                    postModelArrayList.add(new PostModel(userName,imageUrl));
                    WallPostAdapter wallPostAdapter= new WallPostAdapter(WallPost.this,postModelArrayList);
                    postRecycler.setAdapter(wallPostAdapter);
                    wallPostAdapter.notifyDataSetChanged();
                
            

            @Override
            public void onCancelled(@NonNull DatabaseError error) 

            
        );

后模型

String userName,ImageUrl;

public PostModel() 


public PostModel(String userName, String imageUrl) 
    this.userName = userName;
    ImageUrl = imageUrl;


public String getUserName() 
    return userName;


public void setUserName(String userName) 
    this.userName = userName;


public String getImageUrl() 
    return ImageUrl;


public void setImageUrl(String imageUrl) 
    ImageUrl = imageUrl;

数据库图片

【问题讨论】:

请编辑您的问题并添加您的PostModel 课程的内容。 完成先生,我添加 PostModel 类 【参考方案1】:

由于以下 getter,您将得到 imageUrl 的“null”:

public String getImageUrl() 
    return ImageUrl;

正在数据库中查找名为imageUrl 的属性,但实际上 存在。应该调用正确的 getter:

public String getPostUrl() 
    return ImageUrl;

因为您的财产被称为postUrl

附:因为您使用的是公共 getter 和 setter,所以您应该将类​​中的属性设为私有。

【讨论】:

以上是关于当我从实时数据库读取数据时,它只获取用户名并将 imageurl 获取为“null”但是我在实时数据库中有 url的主要内容,如果未能解决你的问题,请参考以下文章

从子进程读取的实时标准输出仅在从 PyCharm 而不是终端运行时才有效

从 firebase 检索数据并将其显示在可扩展的 recyclerview 中

反应本机图像获取/上传

滚动时将更多数据加载到recycleview

在 Flutter 中将数据保存到 Firebase 实时数据库

将图像保存到核心数据中并将其提取到 tableview 单元格中