gpt4 book ai didi

ios - Auth.auth.currentUser.uid 即使登录有效也无法正常工作

转载 作者:行者123 更新时间:2023-11-28 07:43:09 28 4
gpt4 key购买 nike

在我的应用程序中,当我第一次让用户加入时,我会让他们登录并确认这有效,并且他们会获得一个用户 ID。但稍后在我的 Storyboard 中,我调用了 Auth.auth.currentUser.uid,结果显示为 nil。在我的代码中,我绝不会注销用户。这个问题对我来说非常奇怪,因为在大多数 View Controller b4 中,导致我的应用程序崩溃的那个 currentUser.uid 工作正常,并且我能够将用户的数据存储在 Firebase 上。我尝试调试并得出结论,这个 viewcontroller 代码中有一些东西使这个属性为 nil。有没有人遇到过这个问题b4?这是我的一些 View Controller 代码。 *注意:对于变量 DatabaseRef,我在类的顶部声明。我读过一些关于范围的概念可能是这里的问题?

func getArrayOfMatches(){
dataBaseRef=Database.database().reference()
usedArray.removeAll()
randomNumberArray.removeAll()
finalPeopleArray.removeAll()
peopleArray.removeAll()

print(Auth.auth().currentUser?.uid)
getUserGender()
getUsersMatchPreferences()
checkWhatPoolToDraw()
getArray()


}

func getUsersMatchPreferences(){
dataBaseRef=Database.database().reference()
dataBaseRef.child("Users").child(Auth.auth().currentUser!.uid).observeSingleEvent(of: .value) { (snapshot) in
if let dictionary=snapshot.value as? [String:AnyObject]{
self.userMatchPreferences=dictionary["AttractedTo"] as! String

}

}
}

func getArray(){
dataBaseRef=Database.database().reference()
dataBaseRef.child("Users").child(Auth.auth().currentUser!.uid).child("oldPotentialMatches").observeSingleEvent(of: .value) { (snapshot) in
let previousMatches=snapshot.value as? String
if let oldPotential=previousMatches{
self.usedArray.append(oldPotential)
}
}
dataBaseRef.child(poolToDraw1).observeSingleEvent(of: .value) { (snapshot) in
let personBook=snapshot.value as? String
if (personBook != nil) && !self.usedArray.contains(personBook!){
self.peopleArray.append(personBook!)
}

}
getRandomizedNumbers()
for i in 0...9{
let randomNumber=randomNumberArray[i]
let randomID=peopleArray[randomNumber]
finalPeopleArray.append(randomID)
usedArray.append(randomID)
}
for i in 0...usedArray.count-1{
dataBaseRef.child("Users").child("")
}
}
func getRandomizedNumbers(){
var numIterations = 10
if peopleArray.count < 10 {
numIterations = peopleArray.count
}
for i in 0...numIterations{
var randNumb = Int(arc4random_uniform(UInt32(peopleArray.count)))
while randomNumberArray.contains(randNumb){
randNumb=Int(arc4random_uniform(UInt32(peopleArray.count)))
}
randomNumberArray.append(randNumb)
}
}

最佳答案

如果您 100% 登录到用户 UID 可以出现在屏幕上但您无法执行任何其他操作的点,那么最有可能的问题是数据库的规则,因此您需要转到您的firebase 控制面板单击左侧菜单上的“数据库”,然后单击蓝色菜单上的“Rules”。仅用于测试,您可以这样做。

{
"rules": {
".read": true,
".write": true
}
}

关于ios - Auth.auth.currentUser.uid 即使登录有效也无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51668050/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com