2017-10-19 1 views
0

저는 신속하고 새로운 여러보기를 사용하여 가입 양식을 만들려고합니다. 문제는 Auth.auth을 호출 한 후(). currentUser는? 내가 하나의 특정 UID에 일을 계속할 수 없습니다되고, 각 뷰에 다른 문자열을 얻을 .uid 것입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?Firebase가 모든보기에서 uid를 수정합니다.

나뿐만 때문에 중포 기지 함수는 createUser를 사용하여 사용자를 만드는거야 : 나는 보유 모델 클래스를 생성 시도했습니다

Auth.auth().createUser(withEmail: emailField.text!, password: 
passField.text!, completion: { (user, error) in 
      if let error = error { 
       print(error) 
      } 
      if let user = user { 
       let userInfo: [String : Any] = ["uid": UserModel().getUID(), 
               "username": self.usernameField.text!, "avatar_icon" : ""] 
       self.ref.child("users").child(user.uid).setValue(userInfo) 
      } 
     }) 

특정 문자열,하지만 같은 나쁜 결과를 얻는.

import Foundation 
import Firebase 

class UserModel { 
    var userID : String 

    init() { 
     self.userID = (Auth.auth().currentUser?.uid)! 
    } 

    func getUID() -> String { 
     return self.userID 
    } 

} 

내 첫 가입 뷰 컨트롤러는 UserModel(). getUID() 미래 뷰 컨트롤러에와 UID를 받고, 내가 UserModel.init 전화 Register1ViewController,()이다. 당신이 알고있는 중포 기지의 모든 인증 된 사용자에서

+1

Welcome to StackOverflow! 질문을 업데이트하여 가입보기 용 코드를 포함하십시오. 문제를 재현하는 데 필요한 최소한의 완전한 코드를 포함하십시오. 자세한 내용은 [this] (https://stackoverflow.com/help/mcve) 링크를 참조하십시오. –

답변

0

은 하나의 "독특한"UID를 가지고있다. 따라서 사용자로 로그인 할 때 쿼리 할 때 반드시 동일한 uID를 가져야합니다. 이 코드의 일부를 제공하지 않았기 때문에 여기에서 말하기는 어렵습니다. 대답을 얻으려면 더 많이 제공해야합니다.

편집 : 그것은 당신이 매번 createuser가를 요구하고있다처럼 활동이 시작 보인다. 즉, 코드를 실행할 때마다 다른 사용자를 생성한다는 의미입니다. 그리고

Auth.auth(). currentUser는?

돌아갑니다 다른 UID를 .uid. 한번 등록하고 다른 시간에 로그인해야합니다. 아래에서 자습서를 확인할 수 있습니다. 그러나 코드 조각을보고 github 코드를 열지 마십시오.

https://www.appcoda.com/firebase-login-signup/

+0

내 모든 코드는이 문제와 관련이 없으며 모든보기에서 공통적으로 만 호출합니다. Auth.auth(). currentUser? .uid는 다른 문자열을 반환합니다. 내가 사용한 것처럼 내 게시물을 편집하고 createUser 함수를 추가했습니다. 당신의 제안에 감사드립니다 :) –