我正在尝试在iamit子项下创建一个新子项,该子项是新创建的用户ID。它将用户注册到身份验证,但是不注册到实时数据库,这保持不变。层次是用户->限制->用户ID
我看不到出了什么问题,我已经遵循了Google指南,应该可以正常工作。我在规则中有“ .read”:true,“。write”:true。
注册时不会引发任何错误,也不会崩溃。转到下一个活动,并显示使用ID创建的祝酒词,并且该用户显示在身份验证部分中。
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.FirebaseFirestore;
import java.util.HashMap;
import java.util.Map;
public class confirmineed extends Activity {
public static final String TAG = "TAG";
String firstname,lastname,number,emailtxt,psw, userID;
FirebaseAuth fAuth;
ProgressBar progressBar;
FirebaseFirestore fStore;
FirebaseDatabase database;
Button signupbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_confirmineed);
Bundle bundle = getIntent().getExtras();
assert bundle != null;
firstname = bundle.getString("firstname");
lastname = bundle.getString("lastname");
number = bundle.getString("Pnumber");
emailtxt = bundle.getString("email");
psw = bundle.getString("psw");
TextView name = (TextView) findViewById(R.id.name);
final TextView pnumber = (TextView) findViewById(R.id.pnumber);
TextView email = (TextView) findViewById(R.id.email);
TextView role = (TextView) findViewById(R.id.role);
name.setText(firstname + " " + lastname);
pnumber.setText(number);
email.setText(emailtxt);
role.setText("I provide I.T. Support");
signupbtn = findViewById(R.id.signupbtn);
fAuth = FirebaseAuth.getInstance();
fStore = FirebaseFirestore.getInstance();
database = FirebaseDatabase.getInstance();
progressBar = findViewById(R.id.progressBar2);
progressBar.setVisibility(View.GONE);
signupbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressBar.setVisibility(View.VISIBLE);
// register the user in firebase
fAuth.createUserWithEmailAndPassword(emailtxt,psw).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
userID = fAuth.getCurrentUser().getUid();
Toast.makeText(confirmineed.this, "User Created." + userID, Toast.LENGTH_SHORT).show();
DocumentReference documentReference = fStore.collection("users").document(userID);
Map<String,Object> user = new HashMap<>();
documentReference.set(user).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
String user_id = fAuth.getCurrentUser().getUid();
DatabaseReference myref = database.getReference().child("Users").child("iamit").child(user_id);
myref.setValue(true);
Log.d(TAG, "onSuccess: user Profile is created for "+ userID);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(TAG, "onFailure: " + e.toString());
}
});
startActivity(new Intent(getApplicationContext(),iamitlogin.class));
}else {
Toast.makeText(confirmineed.this, "Error ! " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
}
});
}
});
}
public void onBackPressed(View view){
Intent sendback = new Intent(this, signupend.class);
sendback.putExtra("firstname", firstname);
sendback.putExtra("lastname", lastname);
sendback.putExtra("Pnumber", number);
sendback.putExtra("email", emailtxt);
sendback.putExtra("psw", psw);
startActivity(sendback);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
};
}
放DatabaseReference myref = database.getReference().child("Users").child("iamit").child(user_id); myref.setValue("true");
出来successlistener的。你把它放在阅读部分
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句