我有一个节点名称 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/