package Ġcom . early bird . running buddy . activity Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . ActionBar Ċ import Ġcom . early bird . running buddy . databinding . Activity SignUp Binding Ċ import Ġcom . google . firebase . auth . k tx . auth Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . firestore . k tx . firestore Ċ import Ġcom . google . firebase . k tx . Firebase Ċ Ċ class ĠSign Up Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity SignUp Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity SignUp Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġval Ġab : ĠAction Bar ? Ġ= Ġsupport ActionBar ĊĠĠĠĠĠĠĠ Ġab ?. setTitle (" íļĮ ìĽĲ ê°Ģ ìŀħ ") ĊĠĠĠĠĠĠĠ Ġ// ( ì£¼ ìĦĿ ìĿĢ ĠìľĦ ìĹĲìĦľ ĠìķĦëŀĺ ë¡ľ ĠìĿ ½ ìĹ¬ ëĤ ´ë ł ¤ Ġê°Ģ ìĦ¸ìļĶ .) Ġdb Ġë³ĢìĪĺ ìĹĲ Ġfirebase DB ë¥¼ Ġì ĵ° ê¸° ìľĦ íķľ Ġê°Ŀì²´ ë¥¼ Ġíķł ëĭ¹ íķ¨ ĊĠĠĠĠĠĠĠ Ġval Ġdb : ĠFirebase Fire store Ġ= ĠFirebase . firestore ĊĊĠĠĠĠĠĠĠ Ġ// ìĦ± ë³Ħ ìĿĦ ĠìłĢìŀ¥ íķĺê¸° ĠìľĦ íķľ Ġ' sex ' Ġë³ĢìĪĺ ĠìĦł ìĸ¸ , ĠìĤ¬ìļ©ìŀĲ ìĿĺ Ġë Ĥ¨ / ìĹ¬ Ġë²Ħ íĬ ¼ ĠìĦłíĥĿ ìĹĲ ĠëĶ°ëĿ¼ Ġsex Ġë³ĢìĪĺ ìĿĺ Ġê°Ĵ ê³¼ ĠìĤ¬ìļ©ìŀĲ ìĿĺ ĠíĺĦ ìŀ¬ ìĦł íĥĿ ĠìĦ± ë³Ħ ìĿĦ Ġë³´ ìĹ¬ ì£¼ ëĬĶ Ġ' sex View ' ĠìĿĺ ĠëĤ´ìļ© ìĿ´ Ġë³Ģê²½ ëĲ ¨ ĊĠĠĠĠĠĠĠ Ġvar ĠS ex : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġbinding . Male Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sex View . text Ġ= Ġ" ë Ĥ¨ ìŀĲ " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ex Ġ= Ġ" male " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . Female Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sex View . text Ġ= Ġ" ìĹ¬ ìŀĲ " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ex Ġ= Ġ" female " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ìĤ¬ ìļ© ìŀĲ ê°Ģ Ġí ļĮ ìĽĲ ê°Ģ ìŀħ ìĿĦ ĠìľĦ íķľ Ġìłķë³´ ë¥¼ Ġëª¨ ëĳĲ Ġìŀħëł¥ ĠíĽĦ Ġë§ ¨ ìķĦ ëŀĺ Ġë²Ħ íĬ ¼ ìĿ¸ ĠEnd Button ĠìĿ Ħ Ġë Ī Ħ ë¥ ´ë © ´ Ġë¦¬ ìĬ¤ ëĦ Ī ê°Ģ ĠëıĻ ìŀĳ íķ¨ ĊĠĠĠĠĠĠĠ Ġbinding . End Button . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ë¦¬ ìĬ¤ ëĦ Ī ĠìķĪ ìĹĲìĦľ Ġif Ġë¬¸ ìĿĦ ĠìĿ´ìļ© íķ´ Ġê°Ģ ìŀħ ìłķ ë³´ ì¤ĳ Ġíķľ ì¹ ¸ ìĿ´ ëĿ¼ ëıĦ Ġë¹ Ī ê³ ³ ìĿ´ ĠìŀĪëĬĶ ì§Ģ Ġê²Ģ ìĤ¬ íķĺê³ł ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . ID text . text . toString (). equals ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġbinding . PW text . text . toString (). equals ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġbinding . Name Text . text . toString (). equals ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġbinding . Height Text . text . toString (). equals ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġbinding . Weight Text . text . toString (). equals ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġbinding . PW Check text . text . toString (). equals ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠS ex . equals ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ë ¹ Ī ì¹ ¸ ìĿ´ ĠìŀĪëĭ¤ ë©´ Ġë¹ Ī ì¹ ¸ ìĿĦ Ġì± Ħ ìĽĮ ëĭ ¬ ëĿ¼ ëĬĶ Ġí Ĩł ìĬ¤íĬ¸ Ġë©Ķ ìĦ¸ ì§Ģë¥¼ Ġì¶ľëł¥ íķ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" ë ¹ Ī ì¹ ¸ ìĿĦ Ġëª¨ ëĳĲ Ġì± Ħ ìĽĮ ì£¼ ìĦ¸ìļĶ ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ// ë ¹ Ī ì¹ ¸ ìĿĢ ĠìĹĨ ì§Ģë§Į Ġë§Į ìķ½ Ġë¹Ħ ë° Ģ ë²Ī íĺ¸ ĠíĻķìĿ¸ íķĺê¸° ĠìĻ Ģ Ġë¹Ħ ë° Ģ ë²Ī íĺ¸ ê°Ģ ĠìĿ¼ ì¹ĺ íķĺì§Ģ ĠìķĬ ëĬĶ ëĭ¤ ë©´ Ġëĭ¤ ìĭľ Ġìŀħëł¥ Ġíķ´ ëĭ ¬ ëĿ¼ ê³ł Ġí Ĩł ìĬ¤íĬ¸ Ġë©Ķ ìĦ¸ ì§Ģ Ġì¶ľëł¥ íķ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ(! binding . PW Check text . text . toString (). equals ( binding . PW text . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" ë¹Ħ ë° Ģ ë²Ī íĺ¸ ê°Ģ Ġëĭ¤ ë¦ ħ ëĭĪëĭ¤ .\ n Ġëĭ¤ ìĭľ ĠíĻķìĿ¸ Ġíķ´ ì£¼ ìĦ¸ìļĶ .", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ìĤ¬ ìļ© ìŀĲ ê°Ģ ĠìľĦ ìĿĺ Ġë¬¸ìłľ ëĵ¤ ĠìĹĨ ìĿ´ Ġëĭ¤ Ġì± Ħ ìĽĮ ëĦ £ ê³ł ĠEnd Button ìĿĦ Ġë Ī Į ëł Ģ ëĭ¤ ë©´ , Ġfirebase ìĹĲ ĠìķĦ ìĿ´ ëĶĶ ìĻĢ Ġë¹Ħ ë° Ģ ë²Ī íĺ¸ ë¥¼ ĠìłĦ ëĭ ¬ íķĺ ë©° Ġí ļĮ ìĽĲ ê°Ģ ìŀħ ìĿĦ Ġìĭľ ëıĦ íķ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase . auth . createUser With Email And Password ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ID text . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . PW text . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ìłķ ìĥģ ìłģìĿ¸ ĠìķĦ ìĿ´ ëĶĶ ìĻĢ Ġë¹Ħ ë° Ģ ë²Ī íĺ¸ ë¥¼ Ġìŀħëł¥ íĸ Īëĭ¤ ë©´ ĠìĦ± ê³µ íĸĪ ìĿĦ ê²½ ìļ° ìĿĺ Ġë¦¬ ìĬ¤ ëĦ Ī ê°Ģ ĠëıĻ ìŀĳ íķ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). add On Complete Listener ( this ) Ġ{ Ġ// Ġit : ĠTask < Auth Result !> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Successful ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ê·¸ ë¦¬ ê³ł ĠìķĦ ìĿ´ ëĶĶ ìĻĢ ĠíĮ¨ ìĬ¤ ìĽĮ ëĵľë¥¼ Ġìłľ ìĻ¸ íķľ Ġí ļĮ ìĽĲ Ġìłķë³´ ë¥¼ ĠDB ìĹĲ ĠëĦ £ ê¸° ìľĦ íķľ Ġhash Map ìĿĦ ĠìĥĿìĦ± íķ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Map Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Name " Ġto Ġbinding . Name Text . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Height " Ġto Ġbinding . Height Text . text . toString (). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Weight " Ġto Ġbinding . Weight Text . text . toString (). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sex " Ġto ĠS ex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ê·¸ ë¦¬ ê³ł Ġë ¯¸ ë¦¬ Ġì¤ Ģ ë¹Ħ ëĲľ ĠDB Ġì ½ ľ ëł ī ìħĺ ìĿ¸ Ġ' users ' ĠìĹĲ Ġë°© ê¸Ī Ġë§Įëĵ¤ ìĸ´ ì§Ħ Ġìľł ìłĢ ìĿĺ Ġê³ł ìľ ³ ê°Ĵ ìĿ¸ ĠUID ( ë³µ ìŀ ¡ íķľ Ġë¬¸ ìŀĲ Ġë°ı ĠìĪ « ìŀĲ ë¡ľ ĠìĿ´ë £ ¨ ìĸ´ ì§ Ĳ ) Ġë ¥ ¼ Ġìłľ ëª© ìľ¼ë¡ľ íķĺëĬĶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ë¬¸ ìĦľ ( document ) ë¥¼ ĠìĥĿìĦ± íķĺê³ł , Ġë°Ķ ë¡ľ ĠìľĦ ìĹĲìĦľ Ġë§Į ëĵł Ġhash Map ĠìĿ¸ Ġ' info Map ' ĠìĿ Ħ Ġë¬¸ ìĦľ ìĿĺ ĠëĤ´ìļ© ìľ¼ë¡ľ Ġì± Ħ ìĽĮ ëĦ £ ìĿĮ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . collection (" users ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. document ( Firebase . auth . currentUser ?. uid Ġ?: Ġ" No ĠUser ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( info Map ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ìĿ´ ìłľ Ġ ĠLogin Activity Ġë¡ľ ĠíĻ Ķ ë©´ ìĿĦ ĠìłĦ íĻĺ íķĺ ë©° , ĠSign Up Activity ĠëĬ Ķ Ġì¢ ħ ë£Į íķ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( this , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ë§Į ìķ½ Ġìłķ ìĥģ ìłģìĿ¸ ĠìķĦ ìĿ´ ëĶĶ ëĤĺ Ġë¹Ħ ë° Ģ ë²Ī íĺ¸ ê°Ģ ĠìķĦ ëĭĪ ìĹ¬ ìĦľ Ġ( ìĿ´ ë¯¸ Ġê°Ģ ìŀħ ëĲľ ĠìĿ´ë © Ķ ìĿ¼ ĠìĿ´ ê±°ëĤĺ Ġ 6 ìŀĲ ë¦¬ ĠìĿ´ íķĺ ìĿĺ Ġë¹Ħ ë° Ģ ë²Ī íĺ¸ Ġëĵ± ) Ġê°Ģ ìŀħ ìĹĲ Ġìĭ¤ íĮ ¨ íķĺë©´ , Ġìĭ¤ íĮ ¨ íĸ Īëĭ¤ ëĬĶ Ġtext ë¥¼ Ġì¶ľëł¥ íķ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" íļĮ ìĽĲ ê°Ģ ìŀħ Ġìĭ¤ íĮ ¨ . Ġê°ľë°ľ ìŀĲ ìĹĲ ê²Į Ġë¬¸ ìĿĺ íķĺ ìĦ¸ìļĶ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }