我正在尝试将有关集合用户中注册用户的数据写入我的Cloud Firestone用户,当然它必须与授权中的UID代码相关联(注册/登录系统正常工作并在我的Firebase中编写auth)。
XML注册按钮:
<Button
android:id="@+id/RegisterBtn"
android:layout_width="0dp"
android:layout_height="51dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="92dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="REGISTER"
app:backgroundTint="#870404"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/Password" />
JAVA寄存器:
...
FirebaseFirestore database;
String userID;
...
database = FirebaseFirestore.getInstance();
mRegisterBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = mFullName.getText().toString().trim();
String email = mEmail.getText().toString().trim();
String password = mPassword.getText().toString().trim();
String confirmPassword = mconfirmPassword.getText().toString().trim();
。。。
//REGISTER THE USER
fAuth.createUserWithEmailAndPassword(email,password).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
startActivity(new Intent(getApplicationContext(),MainActivity.class));
finish();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Register.this, "Error!" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
//FIRECLOUD INSERT DATA
//GET ID FROM AUTH
userID = fAuth.getCurrentUser().getUid();
saveOnFireCloud(userID,name,email);
}
});
。。。
private void saveOnFireCloud(String userID, String name, String email) {
Map<String,Object> mappa = new HashMap<>();
mappa.put("id",userID);
mappa.put("name",name);
mappa.put("email",email);
database.collection("Users").document(userID).set(mappa)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(Register.this, "Data Inserted!", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Register.this, "Error Inserting Data!" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
在Cloud Firestone中,我刚刚创建了集合用户。我注意到在工具中
但即使我已经点击并似乎构建正确,底部的“将云Firestone添加到你的应用程序”按钮仍然会出现,而不是✓
我是否以正确的方式开发了链接UID的步骤?当我单击注册按钮时,在运行时没有收到错误,Auth用户被创建,但用户数据保持空白...我真的很生气,我只是被困在这一步!
提前感谢您的回答!!
编辑:
非常感谢你的回答,弗兰克。是的,如果我在内部设置断点:private void saveOnFireCloud(String userID、String name、String email)
:
这是以下行的结果:database.collection("用户"). Document(userID). set(mappa):
this = { Register@17322 }
userID = "YVI9zPC2VJbpd4JpMCeBOZNDsbD2"
name = "a" email = "test@gmail.com"
mappa = {HashMap@17356}
size = 3
database = {FirebaseFirestone@17357}
但如果我设置2个断点
public void onComplete(@NonNull Task<Void> task) { and public void onFailure(@NonNull Exception e)
调试跳过...数据不知道...
我通过替换方法解决了这个问题:
database.collection("Users").document(userID).set(mappa)
使用方法:
database.collection("Users").add(mappa)
似乎是。set(Hashmap)方法可以仅用于替换现有对象,而不是方法。add(Hashmap)将对象添加到数据库。我在集合中正确插入了该记录。
顺便说一句,现在我又卡在这个问题上了,我试着再次测试它,现在,没有在Firebase Cloud中插入数据。当我单击继续时,什么都没有发生!只是在控制台“帧不可用”
已解决2.0:Android studio似乎存在现金漏洞,要解决此问题,请取消C:\Users\PIDIOTTO\AppData\Roaming\Google中的AndroidStudio文件夹,然后重新启动Android studio!:)
我设法将数据插入身份验证,但无法插入数据库: 代码: 错误: E/AndroidRuntime:致命异常:主进程:com。实例budgetingapp,PID:11507 java。lang.RuntimeException:在类androidx上找到了名称getText的冲突获取程序。appcompat。小装置。AppCompativeText位于com。谷歌。火基。消防商店。util。Cust
我正在尝试用Firebase制作一个简单的Android应用程序。 目前,我只是试图从Firebase实时保存用户数据库。但由于某种原因它不起作用。另一方面,身份验证工作完美。 数据库本身没有显示任何内容。它总是显示“null” 我一直在关注这个YouTube教程,并一直在做一些类似的事情。 当我尝试创建一个用户并将其发送到数据库时,运行的程序没有给出任何答案。我有一个进度条,一旦setValue
问题内容: 我正在尝试从applet编写示例文件,但无法正常工作。下面是代码。 小程序 的HTML 我也没有得到任何错误。请指教。 问题答案: 这是因为小程序位于其自己的沙箱中,在沙箱中它们需要特殊权限才能执行某些操作,例如读取或写入客户端计算机的磁盘。记住,小程序是在客户端计算机的上下文中执行的,它们是客人并且需要遵循内部规则 查看小程序可以做什么和不能做什么以获取更多详细信息
我有一个应用程序使用外部存储来存储照片。根据需要,在其清单中请求以下权限 并使用以下方法检索所需的目录 在我的一部测试手机(Android one)升级到6之后,它在尝试创建必需的目录“/sdcard/pictures/myapp-yy-mm”时返回了一个错误。 sd卡配置为“便携式存储”。我已经格式化了sd卡。我已经把它换掉了。我重新启动了。都是徒劳。 此外,内置的android截图功能(通过电
理想情况下,我想在localhost上记录开发过程中的一切,只记录实时服务器上的错误。我在我的开发平台(Windows 10,JavaWicket)上无法登录文件。 log4j2.xml 我已经设法得到一些日志写入我tomcat的文件夹。 只有我的一些信息出现了。我不知道什么符号有意义,什么符号没有意义。 可公开访问页面的基页记录子类。 [信息]2017-10-19 17:07:13.208[ht
我正在GKE上创建一个nginx入口。 在每次重新加载事件中,我的控制器打印到日志: I1019 13:23:31.679126 6控制器。go:145]“检测到配置更改,需要后端重新加载”I1019 13:23:31.776558 6控制器。转到:162]“后端成功重新加载”I1019 13:23:31.776897 6事件。go:282]事件(v1.ObjectReference{种类:“Po