그리고 긴 버전이 있습니다 :안드로이드 애플리케이션에서 firebase-ui를 사용하는 중에 사용자가 이미 계정을 생성했는지 어떻게 알 수 있습니까?
저는 Firebase과 Android Studio에 완전히 익숙하며, 이미 내 앱에 google과 FB로 로그인하는 것과 같은 몇 가지 부분을 작성했습니다. 나는 this tutorial을 따라 갔다.
모든 것이 잘 작동하지만 지금 내가하고 싶은 것은 사용자의 정보를 수집하고 Firebase 데이터베이스에 저장하는 것입니다. (기본 아이디어가 있다고 생각합니다). 그러나 문제는 계정별로 이러한 세부 정보를 한 번만 물어보고 싶기 때문에 사용자가 처음으로 계정을 만드는 경우 알 수있는 방법을 모를 수 있다는 것입니다. 그래서 나는 Auth에서 'User UID'를 사용할 것이라고 생각했습니다. 그런데 내가 만난 문제는 위에서 언급 한 튜토리얼을 사용할 때 사용자가 이미 존재하는지 확인하기 위해 코드를 작성하는 방법과 장소입니다. 데이터베이스 또는 코드 자체의 규칙 섹션에서 수행해야합니까?
나는 튜토리얼을 따라 만든 코드를 게시 할 것이다. 이것이 멍청한 질문이라면 유감이지만 Firebase UI에 대한 경험이없는 개발자는 없습니다. 그래서 나는 그의 것에 대해 물어볼 사람이 정말로 없다. 어떤 도움을 주셔서 감사합니다.
MainActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.firebase.ui.auth.AuthUI;
import com.google.firebase.auth.FirebaseAuth;
public class MainActivity extends AppCompatActivity {
private static final int RC_SIGN_IN=0;
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auth = FirebaseAuth.getInstance();
if(auth.getCurrentUser() != null) {
//user already signed in
Log.d("AUTH", auth.getCurrentUser().getEmail());
Intent intent = new Intent(this, com.jacob.appdevitae.HomeActivity.class);
startActivity(intent);
finish();
}
else {
startActivityForResult(AuthUI.getInstance()
.createSignInIntentBuilder()
.setProviders(
AuthUI.FACEBOOK_PROVIDER,
AuthUI.GOOGLE_PROVIDER)
.build(),RC_SIGN_IN);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RC_SIGN_IN) {
if(resultCode == RESULT_OK) {
//User logged in
Log.d("AUTH", auth.getCurrentUser().getEmail());
Intent intent = new Intent(this, com.jacob.appdevitae.HomeActivity.class);
startActivity(intent);
finish();
}
else {
//User not authenticated
Log.d("AUTH", "NOT AUTHENTICATED");
}
}
}}
. 그러나 나는 그것을 이해할 수 없었다. 내가 이것을 시도하자. 고맙습니다. –
왜 com.google.firebase : firebase-database : 9.8.0 대신 com.google.firebase : firebase-database : 9.6.1입니까? 내 모든 다른 종속성은 9.8.0입니다. –
설명서에서 그 중 하나를 발견했습니다. 9.8.0 –