簡體   English   中英

如何在用戶創建期間使用 Firebase Auth 驗證字段服務器端?

[英]How to validate fields server side during user creation with Firebase Auth?

我正在嘗試使用 Firebase Auth 創建新用戶,但我想在創建新帳戶之前使用 Firestore 安全規則驗證某些字段(模式匹配)。 我怎樣才能做到這一點?

在 createUser(withEmail: , password:) function 的完成處理程序中,我在成功創建帳戶時對 Firestore 執行了一些寫入操作。

我面臨一個問題,有時由於 Firestore 安全規則(模式匹配),對 Firestore 的寫入可能不會成功。 在這種情況下,寫入失敗,但仍會創建新用戶帳戶(因為正在完成處理程序中嘗試寫入)。

// Create User Method - Firebase Auth & Swift

Auth.auth().createUser(withEmail: self.emailTextField.text!, password: self.passwordTextField.text!) { (result, error) in
                    if error != nil {
                        print(error?.localizedDescription)
                    } else { 
                        let userName = [
                            userName:self.userNameTextField.text!
                        ]

// Writing field Data to Firestore

Firestore.firestore().collection("users").document(self.userNameTextField.text!).setData(userName) {(err) in
                            if err != nil {

// Rather than throwing a fatalError, how can I ensure new account creation is cancelled so that feedback can be given on the issue with entered field data?                              

fatalError()
                            }

我想確保不會創建用戶帳戶,以防由於與 Firestore 安全規則沖突而導致對 Firestore 的寫入失敗。

Firebase 身份驗證沒有任何安全規則。 目前無法在創建用戶之前檢查傳入的帳戶屬性是否有效。 安全規則僅適用於從移動或 web 客戶端直接讀取和寫入 Cloud Firestore(或實時數據庫或 Cloud Storage)的數據。

您唯一能做的就是在創建帳戶后使用Cloud Functions 身份驗證觸發器檢查帳戶屬性,然后在出現問題時刪除或停用帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM