1
+ class ProfileActivity : AppCompatActivity () {
2
+
3
+ override fun onCreate (savedInstanceState : Bundle ? ) {
4
+ super .onCreate(savedInstanceState)
5
+ setContentView(R .layout.activity_profile)
6
+
7
+ showUserInfo()
8
+ showProfiles()
9
+
10
+ updateProfileButton.setOnClickListener { updateProfile() }
11
+ changeEmailButton.setOnClickListener { changeEmail() }
12
+ changePasswordButton.setOnClickListener { changePassword() }
13
+ deleteAccountButton.setOnClickListener { deleteAccount() }
14
+ signOutButton.setOnClickListener { signOut() }
15
+ }
16
+
17
+ private fun showUserInfo () {
18
+ val user = FirebaseAuth .getInstance().currentUser
19
+ user?.let {
20
+ var info = String ()
21
+ info + = " uid: ${user.uid} \n "
22
+ info + = " name: ${user.displayName} \n "
23
+ info + = " email: ${user.email} \n "
24
+ info + = " is verified: ${user.isEmailVerified} \n "
25
+ info + = " photoUrl: ${user.photoUrl.toString()} \n "
26
+ // get more info
27
+ userInfo.setText(info)
28
+ }
29
+ }
30
+
31
+ private fun showProfiles () {
32
+ val user = FirebaseAuth .getInstance().currentUser
33
+ user?.let {
34
+ for (profile in it.providerData) {
35
+ var info = String ()
36
+ info + = " PROVIDER: ${profile.providerId} \n "
37
+ info + = " uid: ${profile.uid} \n "
38
+ info + = " name: ${profile.displayName} \n "
39
+ // get more info
40
+ userProfiles.setText(info)
41
+ }
42
+ }
43
+ }
44
+
45
+ private fun updateProfile () {
46
+ val user = FirebaseAuth .getInstance().currentUser
47
+ val profileUpdates = UserProfileChangeRequest .Builder ()
48
+ .setDisplayName(editText.getText().toString())
49
+ .setPhotoUri(Uri .parse(" http://androidcode.pl/assets/img/logo.png" ))
50
+ .build()
51
+
52
+ user?.updateProfile(profileUpdates)?.addOnCompleteListener { task ->
53
+ if (task.isSuccessful) {
54
+ // show some message and change UI
55
+ }
56
+ }
57
+ }
58
+
59
+ private fun changeEmail () {
60
+ val user = FirebaseAuth .getInstance().currentUser
61
+ val email = editText.getText().toString() // validate
62
+ user?.updateEmail(email)?.addOnCompleteListener { task ->
63
+ if (task.isSuccessful) {
64
+ // show some message and change UI
65
+ }
66
+ }
67
+ }
68
+
69
+ private fun changePassword () {
70
+ val user = FirebaseAuth .getInstance().currentUser
71
+ val newPassword = editText.getText().toString() // validate
72
+ user?.updatePassword(newPassword)?.addOnCompleteListener { task ->
73
+ if (task.isSuccessful) {
74
+ // show some message and change UI
75
+ }
76
+ }
77
+ }
78
+
79
+ private fun deleteAccount () {
80
+ val user = FirebaseAuth .getInstance().currentUser
81
+ user?.delete()?.addOnCompleteListener { task ->
82
+ if (task.isSuccessful) {
83
+ // show some message and change UI
84
+ }
85
+ }
86
+ }
87
+
88
+ private fun signOut () {
89
+ FirebaseAuth .getInstance().signOut()
90
+ finish()
91
+ }
92
+
93
+ // more methods
94
+ }
0 commit comments