- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个包含鸟类学应用程序的应用程序,并且我使用 Firabase 作为 BBDD。
我的问题是我收到以下错误:'java.lang.IllegalStateException:默认 FirebaseApp 未在此进程 com.example.journal 中初始化。确保首先调用 FirebaseApp.initializeApp(Context)。
我有一个第一个屏幕,它有一个 ImageView,它与一个 OnClickListenner() 相关联,负责将您发送到登录屏幕。当应用程序尝试顶部发送您崩溃。
我也在应用程序中使用导航组件,但与崩溃无关。
FirtsScreen.class
public class FirtsScreen extends AppCompatActivity {
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firts_screen);
img = (ImageView) findViewById(R.id.imgInicio);
img.setImageResource(R.drawable.inicio);
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "WELCOME TO BIRD-LAND !", Toast.LENGTH_LONG).show();
Intent miIntent = new Intent(getApplicationContext(), Login.class);
startActivity(miIntent);
}
});
}
}
MainActivity.class
public class MainActivity extends AppCompatActivity implements FilterDialog.FilterDialogListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView navView = findViewById(R.id.nav_view);
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_home, R.id.navigation_search, R.id.navigation_journal, R.id.navigation_account, R.id.navigation_capture)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(navView, navController);
//Inicializo Firebase.
FirebaseApp.initializeApp(getApplicationContext());
}
@Override
public void getFilters(ArrayList<String> regions) {
SearchFragment fragment = (SearchFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_search);
fragment.receiveRegions(regions);
int i = 0;
i++;
}
}
登录类
public class Login extends AppCompatActivity {
private EditText EtUser;
private EditText EtPass;
private ImageButton btnLogin;
private String user;
private String pass;
private Usuario usuario;
private FirebaseAuth mAuth;
private FirebaseUser current_user;
private ImageButton btnGoogle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
FirebaseApp.initializeApp(getApplicationContext());
//Todo:Explota aqui porque pide que inicializes FirebaseApp con la linea de arriba, pero aun asi no va.
//Here is the where crash the App.
mAuth = FirebaseAuth.getInstance();
EtUser = (EditText) findViewById(R.id.EtLoginUser);
EtPass = (EditText) findViewById(R.id.EtLoginPass);
btnLogin = (ImageButton) findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user = EtUser.getText().toString();
pass = EtPass.getText().toString();
usuario = new Usuario(user, pass);
if(!user.isEmpty() && !pass.isEmpty()){
usuario = new Usuario(user, pass);
current_user = FirebaseAuth.getInstance().getCurrentUser();
if (current_user != null) {
// Name, email address, and profile photo Url
String name = current_user.getDisplayName();
String email = current_user.getEmail();
Uri photoUrl = current_user.getPhotoUrl();
// Check if user's email is verified
boolean emailVerified = current_user.isEmailVerified();
// The user's ID, unique to the Firebase project. Do NOT use this value to
// authenticate with your backend server, if you have one. Use
// FirebaseUser.getIdToken() instead.
String uid = current_user.getUid();
}
}else{
Toast.makeText(getApplicationContext(), "Es necesario completar los datos requeridos.", Toast.LENGTH_LONG).show();
}
}
});
btnGoogle = (ImageButton) findViewById(R.id.btnGoogle);
btnGoogle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
current_user = FirebaseAuth.getInstance().getCurrentUser();
firebaseAuthWithGoogle(current_user.getUid());
}
});
}
private void firebaseAuthWithGoogle(String uid) {
AuthCredential credential = GoogleAuthProvider.getCredential(uid, null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
// Redireccionar a HomeFragment
Navigation.findNavController(btnGoogle).navigate(R.id.fragmentHome);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(Login.this, "Authentication Failed.", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onStart() {
super.onStart();
FirebaseUser currentUser = mAuth.getCurrentUser();
}
private void loginUser(Usuario usuario) {
//TODO:Añadir Firebase Auth.
mAuth.signInWithEmailAndPassword(usuario.getUser(), usuario.getPass()).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();
}else{
Toast.makeText(getApplicationContext(), "No se pudo iniciar sesión. Compruebe sus datos", Toast.LENGTH_SHORT).show();
}
}
});
//Envio de datos al mainActivity para informar del usuario registrado.
Bundle datos = new Bundle();
datos.putSerializable("User", usuario);
Intent miIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(miIntent);
Toast.makeText(getApplicationContext(), "Usuario registrado correctamente", Toast.LENGTH_LONG).show();
}
}
如果您知道错误的来源,请提前感谢!
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.journal. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:183)
at com.google.firebase.auth.FirebaseAuth.getInstance(com.google.firebase:firebase-auth@@20.0.2:1)
at com.example.journal.Login.onCreate(Login.java:49)
at android.app.Activity.performCreate(Activity.java:7802)
at android.app.Activity.performCreate(Activity.java:7791)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
最佳答案
你可能错过了这一行检查你的 build.gadle
apply plugin: 'com.google.gms.google-services'
那为我修好了。
关于android - 默认 FirebaseApp 未在此进程 com.example.journal 中初始化。确保首先调用 FirebaseApp.initializeApp(Context),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66657528/
我有以下对象: dog = { location: { x: 52.1089, y: 16.2323 }, f: function(message) { alert
在 TSQL 中,如果我要搜索有效的 .com 电子邮件地址,我需要确保有一个 @ 符号,它以 .com 结尾,并且在 @ 前后至少有一个字符。 SELECT * FROM CUSTOMER WHER
我正在尝试准备一个信用卡交易列表,以便在 Excel 2010 中进行透视和进一步分析(满足个人需求)。问题是我的银行机构没有遵循标准的日期格式,所以有时日期会显示为 Jun. 1, 2013 , 有
看来您不能在 riak 中进行交易。如何确保数据正确? 假设我们要插入评论。在 redis 我会做 commentId=incr commentCount multi SET comment_post
对于下面给定的模式,是否可以确保至少一个属性包含一个值(即 minLength 为 1): { "$schema": "http://json-schema.org/draft-04/sche
我计划在 Haxe 的一个子集中编写 Haxe 库,这些库将编译为每种 Haxe 目标语言。有什么方法可以验证 Haxe 程序是否可以编译为所有目标语言,是否可以在不手动测试每个目标平台上的编译代码的
如果浏览器窗口未聚焦,则当前页面上的所有 webdriver 标识都失败。 如何使用 webdriver 使浏览器成为焦点? 最佳答案 ((JavascriptExecutor) webDriver)
我从这样的 HTML GET 请求中获取图像链接... www.example.com?image=www.anotherdomain.com/image.jpg if (isset($_GET['i
我有一个 eunit 测试,它生成一个唯一的节点名称并开始分发: {A,B,C} = now(), Nodename = list_to_atom(lists:flatten(io_lib:forma
我正在完成我的 iPhone 应用程序。我只是担心我们的网络服务器级别的安全性。数据通过网络服务被传送到 iPhone 应用程序。 我可以在网络服务上采取哪些安全措施,以免受到攻击? 谢谢 最佳答案
我正在编写一个应用程序,该应用程序启动一个运行简单 Web 服务器的子进程。我正在使用 NSTask 并通过管道与其进行通信,一切看起来或多或少都很好。但是,如果我的程序崩溃,子进程将保持事件状态,并
我有一些应用程序,我调用 ShowMessage('Complete!');在长时间操作结束时。 大多数时候,这效果很好,但每隔一段时间,消息对话框就会显示在主窗体后面。 有什么方法可以确保 Show
我通过将消息插入集合并让模板使用 {{#each}} 打印出集合来创建一个简单的聊天。 我不太熟悉安全性,但是有没有办法让它符合 EFF 规定? https://www.eff.org/secure-
我有一个商店,我想在其中正确管理 id。假设我有以下帖子存储: type Post = { id: number; title: string; body?: string; } type
我有一个使用 ajax post 方法和数据表的程序。经过几周的摆弄,我确定我根本不明白 javascript 是如何工作的。这是我的 JavaScript: $('#SaveTimeSheet').
我有一个系统,如果从 Azure 服务总线丢失消息将是一场灾难,也就是说,数据将永远丢失,并且没有实际方法可以在不造成重大中断的情况下修复损坏。 在这种情况下我可以完全依赖 ASB 吗? (即使它
如何确保 scalatest 测试不会并行运行?在 0.12 之前,我有一个 sbt 设置: parallelExecution in Test := false 新版本引入了一些复杂的机制。这种更简
我的端点有两个如下所示的 promise : request.post({ url: url, json: smsSTART, header
简短版本 当 ui-router 转换到新 View 时(以我不完全理解的方式使用 ngAnimate),它会添加类 ng-leave 和 ng-leave-active 到当前 View 。它还将类
目前正在努力寻找验证 2 个表的方法(有效地验证表 A 的大量行) 我有两张 table 表A ID A B C 表格匹配 ID Number A 1 A 2 A 9 B 1
我是一名优秀的程序员,十分优秀!