An open API service indexing awesome lists of open source software.

https://github.com/sabo99/firebaseauth-phonenumber

Firebase Authentication with Phone Number & Kotlin Programming Android Studio
https://github.com/sabo99/firebaseauth-phonenumber

android-studio firebase-auth firebase-phone-authentication kotlin-android

Last synced: 8 months ago
JSON representation

Firebase Authentication with Phone Number & Kotlin Programming Android Studio

Awesome Lists containing this project

README

          

# Firebase Authentication with Phone Number

Authentication Android application using `Firebase` with the login system using **Phone Number**

### **App Features Firebase Authentication with Phone Number** :

- **_Firebase_**
- Authentication with `PhoneNumber`
- Verification with `SmsCode`
- **_Country Code Picker_**
- Change Country Code | Ex : `(+62) ID`
- Auto Detect Country Code

## Important!

### Add Firebase to your Android project go to `Firebase Setup`


## Design UI App Firebase Authentication with Phone Number

### **`Preview Firebase Auth with Phone Number`**

### **`Preview UI FirebaseAuth-PhoneNumber`**
| Name Page | Preview UI |
| :----------: | :--------------------: |
| `OTP Send` | |
| `OTP Send with Phone Number` | |
| `Country Code Picker` | |
| `OTP Verify` | |
| `OTP Verify - Resend SmsCode` | |
| `Home` | |


## Result on Firebase Console

### **`Authentication`**


## Dependencies used

```groovy
/** Firebase */
implementation platform('com.google.firebase:firebase-bom:29.0.2')
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.firebase:firebase-auth-ktx'

implementation 'com.hbb20:ccp:2.5.0'

```

### Integration Step Used Binding in Kotlin

1. Add **viewBinding `true`** `build.gralde (Module)`

```groovy
android {
...
buildFeatures {
viewBinding true
}
}
```

2. Activity Kotlin Class

```kotlin
class MainActivity : AppCompatActivity() {

/** Add this */
private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
/** Add this */
binding = ActivityMainBinding.inflate(layoutInflater)

/** Change this */
setContentView(binding.root)

/** Without findViewById */
binding.textView.text = "Bye bye findViewById"
}
}
```

3. Activity Java Class

```java
public class MainActivity extends AppCompatActivity {

/** Add this */
private ActivityMainBinding binding;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Add this */
binding = ActivityMainBinding.inflate(getLayoutInflater());

/** Change this */
setContentView(binding.getRoot());

/** Without findViewById */
binding.textView.setText("Bye bye findViewById");
}
}
```

**binding** in kotlin can be used directly without initializing **findViewById** on widgets in layout xml