0
現在、私はfirebase電子メール認証を使って新しいユーザを作成することに成功していますが、ユーザ名、住所などの個人情報をfirebaseデータベースに追加します。私は電子メール認証からの子をノードへの子として使用するすべての研究を行ったが、コードはまだデータベースに接続していてもアンドロイドスタジオでもデータベースに何も挿入されていない。だから、誰もこの質問を解決する方法について私に助言をお願いできますか?firebase電子メール認証firebaseデータベースにユーザ名と詳細を追加
package com.example.rex.ota20;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.HashMap;
import java.util.Map;
public class Register extends AppCompatActivity {
private FirebaseAuth auth;
private EditText run, rpw,re;
//private EditText rcfpw, rage, , rpn, ra, rpc;
//private RadioButton rbm, rbfm, rbstd, rbtt;
private String usnm, pswd, email, uid;
private FirebaseDatabase db;
private DatabaseReference ref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
auth = FirebaseAuth.getInstance();
db = FirebaseDatabase.getInstance();
ref = db.getReference();
FirebaseUser user = auth.getCurrentUser();
uid = user.getUid();//getuser id
run = (EditText) findViewById(R.id.Run);
rpw = (EditText) findViewById(R.id.Rpw);
//rcfpw = (EditText) findViewById(R.id.Rcpw);
//rage = (EditText) findViewById(R.id.Rage);
//rbm = (RadioButton) findViewById(R.id.rbmale);
//rbfm = (RadioButton) findViewById(R.id.rbfemale);
re = (EditText) findViewById(R.id.Re);
//rpn = (EditText) findViewById(R.id.Rpn);
//ra = (EditText) findViewById(R.id.Ra);
//rpc = (EditText) findViewById(R.id.Rpc);
//rbstd = (RadioButton) findViewById(R.id.rbstd);
//rbtt= (RadioButton) findViewById(R.id.rbtt);
final Button br = (Button) findViewById(R.id.Rbt);
br.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//if(!TextUtils.isEmpty(usnm) || !TextUtils.isEmpty(pswd) || !TextUtils.isEmpty(email)){
usnm = run.getText().toString().trim();
pswd = rpw.getText().toString().trim();
//confirmpw = rcfpw.getText().toString().trim();
email = re.getText().toString().trim();
register(usnm, pswd, email);
//}// end of validate
}//end of onclick
});
}
private void register (final String un, final String pw, final String em){
Task<AuthResult> authResultTask = auth.createUserWithEmailAndPassword(em, pw).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
DatabaseReference dbref = FirebaseDatabase.getInstance().getReferenceFromUrl("https://otapp-61bef.firebaseio.com/").child("users");
uid = dbref.push().getKey();
Toast.makeText(Register.this, "Success Registed", Toast.LENGTH_LONG).show();
Intent i = new Intent(Register.this, StudentHomePage.class);
startActivity(i);
finish();
} else {
Toast.makeText(Register.this, "Error", Toast.LENGTH_LONG).show();
}
}
});
}// end of signup
/*private void generateUser (String username, String password, String email){
User u = new User (username, password, email);
dbref.child("users").setValue(u);
}*/
}
ルール
{
"rules": {
".read": true,
".write": true
}
}
私は自分の問題を見つけました...>< –
写真のように直接データベースに直接挿入することもできますか? –
をFirebaseストレージに保存することができます。別の動作例が必要な場合は、私に連絡してください –