java - 为什么firebase无法创建新用户?
问题描述
我正在尝试使用户可以输入各种导入,并且firebase可以将此信息输入到运行时数据库中。但是,当我按下使下面的代码发生的按钮时,它会导致进度条永远加载。我尝试抛出日志以尝试捕获一些异常,但没有出现异常。在 firebase 控制台上,未在身份验证中创建用户,并且未将任何内容添加到 RunTime DB。我不确定是什么导致了这种情况发生,我将不胜感激。
代码:
User user = new User(fullName, email, bio, username,location,realstatus,profilePic);
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference root = db.getReference().child("Users");
progressBar.setVisibility(ViewStub.VISIBLE);
mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()) {
Toast.makeText(Register.this, "Create User Succeeded", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(Register.this, "Failed to Authenticate :( ", Toast.LENGTH_SHORT).show();
}
}
});
root.push().setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()) {
progressBar.setVisibility(ViewStub.GONE);
Toast.makeText(Register.this, "Data Saved", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(Register.this, "Failed to Register User :( ", Toast.LENGTH_SHORT).show();
Log.e("Create user", "Failed to create user", task.getException());
}
}
});
错误:
com.google.firebase.FireBaseException:
An internal error has occured. [ socket failed EPERM:(Operation not permitted) ]
解决方案
向 createUser 添加一个完成侦听器,这样您就可以知道它为什么不工作。
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(LoginActivity.this, task -> {
binding.progressBar.setVisibility(View.GONE);
if (!task.isSuccessful()) {
//get the error here with task.toString();
} else {
save your database data here
}
});
这至少会帮助你了解它失败的原因。还要确保你有
- 在 Firebase 控制台中启用电子邮件身份验证
- 已正确设置您的应用程序、SHA-1s、google-services json 和所有
推荐阅读
- jpa - 无法从 Java EE 应用程序浏览内存数据库中的 H2
- python - Scrapy AttributeError:'Selector'对象没有属性'extract_first'
- java - 使用Arraylist进行排序时如何在ArrayList中的特定位置添加元素?
- angular - Angular mat-icon 正在“翻译”?
- api - 成员和管理员用户的 API 端点
- docker - 如何将 NGINX 正确配置为 tine20 docker 容器(与 Apache2 一起运行)的反向代理?
- vue.js - 类之间的区别(vuejs)
- r - 如果具有名称的列包含部分值,则保留行
- android - 真彩色图标显示黑色背景
- python-3.x - 如何将整个 tkinter 画布截图为 png 或 pdf