我添加了
apply plugin: 'com.google.gms.google-services'
compile 'com.google.firebase:firebase-auth:10.0.1'
在build.gridle(app)
在我添加的模块中
classpath 'com.google.gms:google-services:3.0.0'
这是我的代码
public class splashscr extends Activity implements View.OnClickListener{
TabHost tab ;
Button logbtn,signup;
EditText email,password,signupemail,signuppassword;
private FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tab =(TabHost) findViewById(R.id.tabhost);
logbtn = (Button) findViewById(R.id.btn_login);
signup = (Button) findViewById(R.id.btn_signup);
password = (EditText)findViewById(R.id.input_password);
email = (EditText)findViewById(R.id.input_email);
signupemail =(EditText)findViewById(R.id.signupinput_email);
signuppassword = (EditText) findViewById(R.id.signupinput_password);
firebaseAuth = FirebaseAuth.getInstance();
logbtn.setOnClickListener(this);
signup.setOnClickListener(this);
tab.setup();
TabHost.TabSpec spec = tab.newTabSpec("tag1");
spec.setIndicator("",getResources().getDrawable(R.drawable.loginpic));
spec.setContent(R.id.tab1);
tab.addTab(spec);
spec = tab.newTabSpec("tag2");
spec.setIndicator("",getResources().getDrawable(R.drawable.signupp));
spec.setContent(R.id.tab2);
tab.addTab(spec);
}
@Override
public void onClick(View view) {
final Intent I = new Intent(this,HomeActivity.class);
final String emailout = signupemail.getText().toString();
final String passwordout = signuppassword.getText().toString();
if (view == signup){
(firebaseAuth.createUserWithEmailAndPassword(emailout,passwordout)).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
Toast.makeText(splashscr.this, "تم تسجيلك بنجاح ", Toast.LENGTH_SHORT).show();
startActivity(I);
finish();
}
else
{
Log.e("ERROR", task.getException().toString());
Toast.makeText(splashscr.this, "فشل التسجيل", Toast.LENGTH_SHORT).show();
}
Toast.makeText(splashscr.this,emailout+passwordout, Toast.LENGTH_SHORT).show();
}
});
}
}
}
我收到了这个错误:
E/ERROR: com.google.firebase.FirebaseException: An internal error has occurred. [ OPERATION_NOT_ALLOWED ]
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
有什么不对?
答案 0 :(得分:7)
尝试将您的客户端与Firebase应用重新同步,然后再次添加.json文件。 在android studio 2.3中,只需单击工具&gt; firebase,然后在助手中检查您的应用是否已连接。
答案 1 :(得分:2)
登录您的firebase控制台并启用电子邮件/密码登录_Method,它应该可以解决问题。
答案 2 :(得分:0)
在Firebase控制台中检查是否允许“匿名身份验证”。它应该可以解决你的问题。
还要检查清单中的INTERNET权限。这很明显,但是......
祝你好运。
答案 3 :(得分:0)
答案 4 :(得分:0)
更改Firebase规则后,此问题发生在我身上。我的IOS Simulator运行正常,但Android Emu却无法运行。我通过在模拟器中擦除设备中的所有数据,然后重新启动EMU来解决此问题。也许您甚至不需要擦除来自仿真设备的数据。
答案 5 :(得分:-1)
确保必须照顾好
Internet权限 ,编译库并 不能仅启用来自Firebase身份验证列表的一个身份验证。
在我的情况下,我从Google和电子邮件/密码列表中启用了2身份验证,因此该功能不起作用,但是在禁用Google之后。然后它可以正常工作。
希望我的回答对您有所帮助。