android - Firebase 不创建新节点

标签 android firebase firebase-realtime-database

我有一个节点名称 users 正在正常填充,但我正在尝试合并一个新的节点事件,但我遇到了麻烦。我已经准确地复制了对用户有用的东西,但我显然做错了什么。它永远不会进入 OnCompleteListener。有什么我想念的吗?

R.string.dbnode_events ="事件"

Events events = new Events();
            events.setEvent_key(mEventKey);
            events.setEvent_title("");
            events.setEvent_date("");
            events.setEvent_time("");
            events.setEvent_millis("");
            events.setEvent_desc("");
            events.setEvent_filter("");
            events.setGroup_number("");


            FirebaseDatabase.getInstance().getReference()
                    .child(getString(R.string.dbnode_events))
                    .child(mEventKey)
                    .setValue(events).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    Toast.makeText(CreateEventActivity.this, "Success", Toast.LENGTH_SHORT);
                }
            });

更多信息/示例:顶级用户创建节点没问题,但事件尚未创建。我希望这可以提供更多见解。

 User user = new User();
                    user.setName(email.substring(0, email.indexOf("@")));
                    user.setPhone("1");
                    user.setProfile_image("");
                    user.setSecurity_level("1");
                    user.setUser_id(FirebaseAuth.getInstance().getCurrentUser().getUid());
                    user.setEmail(FirebaseAuth.getInstance().getCurrentUser().getEmail());
                    user.setStreet_address("");
                    user.setCity("");
                    user.setState("");
                    user.setZip("");
                    user.setMember_filter("Member");
                    user.setSmall_group_subscription1("");
                    user.setSmall_group_subscription2("");
                    user.setSmall_group_subscription3("");
                    user.setSmall_group_subscription4("");
                    user.setSmall_group_subscription5("");
                    user.setShow_phone("No");
                    user.setShow_email("Yes");
                    user.setShow_address("No");

                    FirebaseDatabase.getInstance().getReference()
                            .child(getString(R.string.dbnode_users))
                            .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                            .setValue(user)
                            .addOnCompleteListener(task1 -> {
                                FirebaseAuth.getInstance().signOut();
                                redirectLoginScreen();
                            }).addOnFailureListener(e -> {
                                FirebaseAuth.getInstance().signOut();
                                redirectLoginScreen();
                                Toast.makeText(RegisterActivity.this, "Database Problem ",Toast.LENGTH_SHORT);

                            });
/////////////////////////
                    String mEventKey = UUID.randomUUID().toString();
                    Events events = new Events();
                    events.setEvent_key(mEventKey);
                    events.setEvent_title("");
                    events.setEvent_date("");
                    events.setEvent_time("");
                    events.setEvent_millis("");
                    events.setEvent_desc("");
                    events.setEvent_filter("");
                    events.setGroup_number("");


                    FirebaseDatabase.getInstance().getReference()
                            .child(getString(R.string.dbnode_events))
                            .child(mEventKey)
                            .setValue(events)
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            Toast.makeText(RegisterActivity.this, "Success", Toast.LENGTH_SHORT);
                        }
                    });

最佳答案

这就是我所做的,可能会有帮助:D

当你添加一个类时,你必须像这样创建一个引用:

  private DatabaseReference Accounts;

在 onCreate 中:

Accounts = FirebaseDatabase.getInstance().getReference("Accounts");

之后,设置你的类(class)。我为用户这样做:

currentwithID = new Class_user(uID,uSer,matchFound);

然后将其设置在节点上: uID是Google给的token

Accounts.child(uID).setValue(currentwithID);

我对我的数据库的每个节点都做了同样的事情,并且它完美地工作。 试着用这段代码来做,然后告诉我它是否有效 :D

关于android - Firebase 不创建新节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53121535/

相关文章:

android - 如何在调试中使用 Eclipse 交互式控制台

swift - Firebase Swift 查询和客户端扇出

Swift - 数据库中的 Firebase 搜索

javascript - polymer + Firebase (Polymerfire) : Cannot read property 'push' of undefined': 'this.$.query.ref.push(...)'

android - Surface::setbuffersDimensions 日志被垃圾邮件

android - 在安卓中使用 ViewFipper

android - 禁用 EditText 的可编辑性和焦点(如 TextView)

android - 如何从 Android 中删除 Firestore 集合

Firebase 存储不会启用 CORS

android - gradle 构建时出现问题复制到 APK META-INF/LICENSE 中的重复文件