到目前为止,一旦用户登录,我就可以填充文本标签。因此,一旦他们这样做,主页上就会显示“ Welcome johndoe”(johndoe是他们注册时使用的用户名)。但是,我也有一个汉堡式样式的表视图,该视图的配置文件信息包含其用户名,位置和配置文件图像。我在用相同的用户名(即johndoe)填充tableview中的用户名时遇到问题。
我尝试使用一个将包含用户名字符串的全局变量,但是我一直得到默认值“ No Name”
<?xml version="1.0"?>
<project name="Phing Build Tests" default="append-custom-path" basedir=".">
<target name="append-custom-path">
<property file="prop.properties">
<filterchain>
<replaceregexp>
<regexp pattern="^(.*)" replace="vendor/project/$1"/>
</replaceregexp>
</filterchain>
</property>
<echo>${configuration.files.file1.source}</echo>
<echo>${configuration.files.file2.source}</echo>
</target>
</project>
通过使用用户名值,我试图将其分配给我的个人资料项表视图:
var username : String = "No Name"
func getUserName() {
let databaseRef = Database.database().reference()
guard let userID = Auth.auth().currentUser?.uid else { return }
databaseRef.child("users").child(userID).observeSingleEvent(of: .value) { (snapshot) in
let theUserName = (snapshot.value as! NSDictionary)["nameOfUser"] as! String
self.username = theUserName
self.nameOfUserLabel.text! = "Welcome \(self.username)"
//this prints out the correct label by saying "Welcome johndoe"
}
print("The name of the user is: \(self.username)")
//for example it would print out in the console: "No Name"
}
但是,一旦加载了表格视图,它只会显示“无名称”。目标是拥有与欢迎标题标签上相同的用户名。
感谢您的帮助。谢谢!
答案 0 :(得分:0)
您无法调用获取名称的方法是异步(Query query = em.createNativeQuery("INSERT INTO Bike (id, name) VALUES (:id , :name);");
em.getTransaction().begin();
query.setParameter("id", "5");
query.setParameter("name", "Harley");
query.executeUpdate();
em.getTransaction().commit();
),因此请看它执行的真实顺序
observeSingleEvent
在关闭完成后,您总是会看到无名称