debugging phase of user creation process
This commit is contained in:
@@ -12,6 +12,7 @@ import Firebase
|
||||
import FirebaseAuth
|
||||
|
||||
struct PhoneCodeVerificationView: View {
|
||||
@ObservedObject private var phoneverificationViewModel = PhoneVerificationViewModel()
|
||||
@EnvironmentObject private var navigationStack: NavigationStack
|
||||
|
||||
@State var verificationCode = ""
|
||||
@@ -98,10 +99,17 @@ struct PhoneCodeVerificationView: View {
|
||||
print("user id that was authenticated is: \(userId)")
|
||||
print("user id that was authenticated is: \(userPhoneNumber)")
|
||||
|
||||
// get user from firestore using the firebase userid given,
|
||||
// if not there, create
|
||||
|
||||
// if for some reason firebase couldn't get basic user details
|
||||
if userId == nil || userPhoneNumber == nil {
|
||||
self.toastText = "⚠️ Error with Verification"
|
||||
self.toastSubMessage = "Code is invalid. Please try again or re-enter your phone number in the previous page."
|
||||
self.showToast.toggle()
|
||||
|
||||
print((err?.localizedDescription)!)
|
||||
return
|
||||
}
|
||||
|
||||
self.phoneverificationViewModel.createOrUpdateUser(userId: userId!, phoneNumber: userPhoneNumber!)
|
||||
|
||||
// then sending to next page
|
||||
self.navigationStack.push(OnboardingTrioView()) // verify code page
|
||||
|
||||
@@ -9,26 +9,31 @@ import Foundation
|
||||
import FirebaseAuth
|
||||
|
||||
final class PhoneVerificationViewModel : ObservableObject {
|
||||
private var firestoreService = FirestoreService()
|
||||
// TODO: add alert message handler here that publishes changes
|
||||
|
||||
public func verifyPhoneAndSendSMS(phoneNumber: String) {
|
||||
// TODO: do some string validation here
|
||||
// do auth stuff from firebase
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
extension String {
|
||||
// custom function to give (949)920-0392 and get out the right thing
|
||||
func applyPatternOnNumbers(pattern: String, replacementCharacter: Character) -> String {
|
||||
var pureNumber = self.replacingOccurrences( of: "[^0-9]", with: "", options: .regularExpression)
|
||||
for index in 0 ..< pattern.count {
|
||||
guard index < pureNumber.count else { return pureNumber }
|
||||
let stringIndex = String.Index(utf16Offset: index, in: pattern)
|
||||
let patternCharacter = pattern[stringIndex]
|
||||
guard patternCharacter != replacementCharacter else { continue }
|
||||
pureNumber.insert(patternCharacter, at: stringIndex)
|
||||
public func createOrUpdateUser(userId: String, phoneNumber: String) {
|
||||
// TODO: set all in a transaction or batch write
|
||||
|
||||
// get user - 1 result set cost
|
||||
var user = firestoreService.getUser(userId: userId)
|
||||
print("user that was received from get: \(user?.id)")
|
||||
|
||||
if user == nil {// if empty, create user - 1 result set cost..prolly higher cost
|
||||
let newOrExistingUser = User(id: userId, phoneNumber: phoneNumber)
|
||||
firestoreService.createUser(user: newOrExistingUser)
|
||||
} else { // if not, change last logged in value
|
||||
// assign to nil so that server can fill it in
|
||||
user!.lastLoggedInTimestamp = nil
|
||||
|
||||
let _ = firestoreService.updateUser(user: user!)
|
||||
}
|
||||
return pureNumber
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user