Update user on startup

This commit is contained in:
Georg Reisinger 2019-02-20 22:29:02 +01:00
parent 3795a0ff4d
commit 88bea3731b
2 changed files with 41 additions and 23 deletions

View File

@ -74,32 +74,39 @@ public class LoginActivity extends AppCompatActivity {
* Wechselt zu der Dash Activity
*/
private void goDash() {
if (!db.checkIfUserExists(FirebaseAuth.getInstance().getCurrentUser().getUid())) {
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "getInstanceId failed", task.getException());
return;
}
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();
String name = user.getDisplayName();
String email = user.getEmail();
String picture = user.getPhotoUrl().toString();
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "getInstanceId failed", task.getException());
return;
}
// Get new Instance ID token
String token = task.getResult().getToken();
try {
db.createUser(uid, token, name, email, picture);
} catch (SQLException e) {
e.printStackTrace();
}
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();
String name = user.getDisplayName();
String email = user.getEmail();
String picture = user.getPhotoUrl().toString();
// Get new Instance ID token
String token = task.getResult().getToken();
try {
if (!db.checkIfUserExists(FirebaseAuth.getInstance().getCurrentUser().getUid())) {
db.createUser(uid, token, name, picture, email);
} else {
db.updateUser(uid, token, name, picture, email);
}
});
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
Intent intent = new Intent(this, Dash.class);

View File

@ -451,6 +451,17 @@ public class Database {
sqlUpdate5Param(SQL, username, message_id, name, picture, email);
}
/**
* Erstellt einen neuen User, wenn keiner existiert
*
* @param username Der Username des neuen Users
* @throws SQLException
*/
public void updateUser(String username, String message_id, String name, String picture, String email) throws SQLException {
String SQL = "Update \"User\" set message_id = ?, name = ?, picture = ?, email = ? WHERE username = ?";
sqlUpdate5Param(SQL, message_id, name, picture, email, username);
}
/**
* Prüft ob ein User bereits in der DB vorhanden ist. Wenn ja dann wird true returned
*