Firebase 在 android studio 中没有响应
Firebase not responding in android studio
我正在尝试将用户数据插入实时数据库 (Firebase)。但是当我 运行 模拟器或我的 phone 上的应用程序时,它只是不断加载(我设置了一个 loadingBar 以在收到响应时关闭)我尝试通过 logcat 到找到一条错误消息 我得到了这个
Fetching config failed. code, error: 0, java.net.UnknownHostException: Unable to resolve host "app-measurement.com": No address associated with hostname: 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) {
}
});
}
我不知道到底出了什么问题,因为我 运行 通过每件小事超过 5 次来寻找我哪里出错了。我通过删除 firebase 并让助手为我添加它来修复它。我还删除了 Jcenter 存储库,并且更改了用于 android studio 的电子邮件,以与我用于项目的电子邮件相对应。
我正在尝试将用户数据插入实时数据库 (Firebase)。但是当我 运行 模拟器或我的 phone 上的应用程序时,它只是不断加载(我设置了一个 loadingBar 以在收到响应时关闭)我尝试通过 logcat 到找到一条错误消息 我得到了这个
Fetching config failed. code, error: 0, java.net.UnknownHostException: Unable to resolve host "app-measurement.com": No address associated with hostname: 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) {
}
});
}
我不知道到底出了什么问题,因为我 运行 通过每件小事超过 5 次来寻找我哪里出错了。我通过删除 firebase 并让助手为我添加它来修复它。我还删除了 Jcenter 存储库,并且更改了用于 android studio 的电子邮件,以与我用于项目的电子邮件相对应。