我正在尝试使用Firebase身份验证使用Facebook个人资料唱歌,但我在运行代码时遇到错误:
java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在。
这是我的代码。有人能帮我解决那个问题吗?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkFullscreen();
setContentView(R.layout.activity_sign_in);
callbackManager = CallbackManager.Factory.create();
mAuth = FirebaseAuth.getInstance();
facebookSignIn = (Button) findViewById(R.id.facebook_sing_in);
facebookSignIn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.facebook_sing_in:
{
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
handleFacebookToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile","email"));
break;
}
}
}
private void handleFacebookToken(AccessToken token) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
不用担心这个异常< code >(Java . lang . illegalstateexception:名为[DEFAULT]的FirebaseApp不存在)。因为,这是一个firebase bug。你的应用程序不会出现任何问题,所以忘记这个异常吧。
这应该适用于使用Firebase登录Facebook
LoginManager mLoginManager;
//Firebase Variables
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthStateListener;
private CallbackManager mCallbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
mAuth = FirebaseAuth.getInstance();
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
updateUI(user);
}
};
mCallbackManager = CallbackManager.Factory.create();
btnFacebookSignIn = (LoginButton) findViewById(R.id.button_facebook_signin);
btnFacebookSignIn.setReadPermissions("email","public_profile");
btnFacebookSignIn.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
// [START onactivityresult]
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
private void handleFacebookAccessToken(AccessToken token) {
// ...
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Toast.makeText(LoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
private void updateUI(FirebaseUser user) {
if (user != null) {
}
}
}
在updateUi()方法中编写用户登录时的代码
我正在尝试为我的登录表单集成Spring Security,但我很难理解Spring Security如何验证数据库登录: 所以我这样配置了spring-security: 这是我的形式; 这是我的控制器: < li >我不明白,我们是否需要调用@RequestParam来获取用户名和密码字符串,或者spring会自动获取,因为我已经通知了Spring我的登录页面在配置中的位置? 这是我的服务实现
认证(Authentication)是指任何识别用户身份的过程。授权(Authorization)是允许特定用户访问特定区域或信息的过程。 相关模块和指令 认证和授权涉及到三组模块。通常,你需要从每一组中选择至少一个模块。 认证类型模块(参见AuthType指令) mod_auth_basic mod_auth_digest 认证支持模块 mod_authn_alias mod_authn_ano
问题内容: 我正在使用Flask框架创建网站,并正在为(主要是管理上的)操作实施确认页面;即删除用户。 我当前的方法(在下面详细介绍)可以工作,但是感觉很笨拙,似乎对于一个简单的任务来说需要大量工作。有更好的解决方案吗? 目前,我有一条路线可以启动该操作: 哪个重定向到确认路由: 验证确认表单后,然后再次重定向以执行实际操作: 我希望这是有道理的!只是要注意,为确认模板传递了desc和subjec
问题内容: 我在路由配置中的default_controller设置为“ home.php”。 我的控制器有一个子目录,可将其称为“文件夹”。因此,如果我访问http://mysite.com/folder/,应该调用默认控制器“ folder / home.php”吗? 但是由于某种原因,这不起作用,我得到了404。访问http://mysite.com/folder/home或http://m
有问题的电子邮件是这样的:
的复制构造函数和赋值操作符的情况下,便编译器会为我们生成默认的复制构造函数和赋值操作符,以内存复制的形式完成对象的复制。虽然这种机制可以为我们节省很多编写复制构造函数和赋值操作符的时间,但是在某些情况下,比如我们不希望对象被复制,这种机制却是多此一举。) 关于类的“禁止复制”,现在可以使用delete关键字完美地直接表达: class X { // … X& operator=(c