【问题标题】:Android Firebase Realtime database blog appAndroid Firebase 实时数据库博客应用
【发布时间】:2021-07-14 14:54:02
【问题描述】:

我正在制作一个简单的 android firebase 博客应用

我想在我的实时数据库中创建一个新帖子,但数据库中只保存了两个属性

只有 title 和 body 属性被发送到我的实时数据库中,其余的都丢失了,我在 logcat 中没有看到任何错误

Post.java

public class Post {

    SimpleDateFormat ISO_8601_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:sss'Z'");


    private String title, body, uid, date;
    private int vote;


    Post() {
    }

    public Post(String title, String body, String uid) {

        this.title = title;
        this.body = body;
        this.uid = uid;
        date = ISO_8601_FORMAT.format(new Date());
        vote = 0;

    }

}

我想在我的 PostActivity 中调用 addPost 方法将数据发送到 firebase

PostActivity.java


   private void addPost(String title, String body) {
      FirebaseDatabase mFirebaseDatabase = FirebaseDatabase.getInstance();
      FirebaseAuth mAuth = FirebaseAuth.getInstance();


        Post post = new Post(title, body, mAuth.getCurrentUser().getUid());


        mFirebaseDatabase.getReference("Posts").push().setValue(post)
                .addOnCompleteListener(c -> {
                    if (c.isSuccessful()) {
                        Toast.makeText(getApplicationContext(), "Added", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(getApplicationContext(), "Something went wrong", Toast.LENGTH_SHORT).show();

                    }
                }).addOnFailureListener(e -> Toast.makeText(this, "" + e.getMessage(), Toast.LENGTH_SHORT).show());


    }
    

【问题讨论】:

  • 您确定用户已登录吗?您可以尝试在调用数据库代码之前添加Log.d("TAG", mAuth.getCurrentUser().getUid())
  • 用户的 UID 是否也添加到 Firebase 中?请回复@AlexMamo
  • @Dharmaraj 是的,用户已登录,如果用户未登录,应用程序不允许用户访问 postActivity,即使我删除了 uid 属性仍然只发送两件事跨度>
  • 您可以尝试记录新帖子吗?
  • 您可以添加正在添加到数据库中的数据的屏幕截图吗?我很好奇缺少什么。

标签: java android firebase-realtime-database


【解决方案1】:

Firebase 仅考虑在读取/写入自定义类时公开的字段、getter 和 setter。不考虑私有字段、getter 和 setter。

因此,您的问题中的Post应该 不会导致从数据库中读取/写入任何属性,因为所有字段都是私有的。如果您希望它们被读取/写入,请将字段标记为公开,或为它们添加公开的 getter/setter。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 2019-03-22
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多