【问题标题】:Firebase not responding in android studioFirebase 在 android studio 中没有响应
【发布时间】:2022-01-16 11:16:16
【问题描述】:

我正在尝试将用户数据插入实时数据库 (Firebase)。但是当我在模拟器或手机上运行该应用程序时,它只是一直在加载(我设置了一个 loadingBar 以在收到响应时关闭)我尝试通过 logcat 找到一条错误消息我得到了这个

获取配置失败。代码,错误:0,java.net.UnknownHostException:无法解析主机“app-measurement.com”:没有与主机名关联的地址:com.google.android.gms.measurement.internal.zzeq.run(com.google. android.gms:play-services-measurement@@20.0.0:26)

我检查了规则,通过网络查看了依赖项,我似乎找不到我错过的内容。

我想我应该提到我第一次尝试使用 firebase 时,我在一个不太严重的项目中遇到了同样的问题,所以我没有解决它。那时我使用的是 FIrebaseAuth,所以这次我决定使用不同的方法。 这是登录代码。

private void allowAccessAccount(String phoneNumber, String password) {
    final DatabaseReference rootRef;
    rootRef = FirebaseDatabase.getInstance().getReference();

    rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (dataSnapshot.child(PARENT_DB_NAME).child(phoneNumber).exists()) {

                User userData = dataSnapshot.child(PARENT_DB_NAME).child(phoneNumber)
                        .getValue(User.class);

                if (userData.getPhone().equals(phoneNumber)) {

                    if (userData.getPassword().equals(password)) {

                        if (PARENT_DB_NAME.equals("Admins")) {

                            Toast.makeText(SignInActivity.this, "Success", Toast.LENGTH_SHORT).show();
                            loadingBar.dismiss();

                            //Open Home Activity
                            startActivity(new Intent(SignInActivity.this, AdminPanel.class));
                            finish();


                        } else if (PARENT_DB_NAME.equals("Users")) {

                            Toast.makeText(SignInActivity.this, "Success", Toast.LENGTH_SHORT).show();
                            loadingBar.dismiss();

                            //Get User Data
                            Prevalent.currentOnlineUsr = userData;

                            //Open Home Activity
                            startActivity(new Intent(SignInActivity.this, HomeActivity.class));
                            finish();

                        }
                    } else {

                        loadingBar.dismiss();
                        inputPassword.setError("Incorrect password");

                    }
                }
            } else {

                inputPhoneNumber.setError("Not registered");
                loadingBar.dismiss();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

            Toast.makeText(SignInActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();

        }
    });
}

这是注册码

private void signUpUser(String username, String phoneNumber, String password) {
    final DatabaseReference rootRef;
    rootRef = FirebaseDatabase.getInstance().getReference();

    rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (!(dataSnapshot.child("Users").child(phoneNumber).exists())){

                HashMap<String, Object> userDataMap = new HashMap<>();

                userDataMap.put("username", username);
                userDataMap.put("phone", phoneNumber);
                userDataMap.put("password", password);

                rootRef.child("Users").child(phoneNumber).updateChildren(userDataMap)
                        .addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                if (task.isSuccessful()){

                                    //Account creation successful
                                    Toast.makeText(SignUpActivity.this, "Success", Toast.LENGTH_SHORT).show();
                                    loadingBar.dismiss();

                                    //Open Sign In Activity
                                    startActivity(new Intent(SignUpActivity.this,SignInActivity.class));
                                }
                                else {
                                    //Account creation Failed
                                    loadingBar.dismiss();
                                    Toast.makeText(SignUpActivity.this, "Failed", Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
            } else {
                inputPhoneNumber.setError("Already registered");
                loadingBar.dismiss();
            }
        }
        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

}

【问题讨论】:

  • 你添加了json文件吗?
  • @SambhavKhandelwal 是的,我做到了
  • 您说“我正在尝试将用户数据插入实时数据库 (Firebase)”,但我看不到任何将数据写入 Firebase 的代码。可以分享一下吗?
  • @AlexMamo 插入和检索都不起作用,但让我复制它,我会将其添加到原始帖子中
  • 我仍然看不到任何将数据写入数据库的代码。

标签: java android firebase-realtime-database firebase-analytics


【解决方案1】:

我不知道到底出了什么问题,因为我把每件小事都跑了 5 次以上,寻找哪里出了问题。我通过删除 firebase 并让助手为我添加它来修复它。我还删除了 Jcenter 存储库,并更改了我用于 android studio 的电子邮件以与我用于项目的电子邮件相对应。

【讨论】:

    猜你喜欢
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    相关资源
    最近更新 更多