Firebase没有创建新节点

时间:2018-11-02 15:32:04

标签: android firebase firebase-realtime-database

我有一个很好填充的节点名称用户,但是我试图合并一个新的节点事件,这给我带来了麻烦。我已经完全复制了适用于用户的内容,但是显然我做错了什么。它永远不会进入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);
                        }
                    });

1 个答案:

答案 0 :(得分:1)

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

添加类时,您必须创建如下引用:

  private DatabaseReference Accounts;

在onCreate内:

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

然后,设置ur类。我为用户执行此操作:

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

然后在节点上进行设置: uID是Google提供的令牌

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

我已经对数据库的每个节点执行了相同的操作,并且完美地工作了。 尝试使用此代码执行此操作,然后告诉我是否可行:D