我有一个孩子,我附加到一个参考。当我尝试使用uid向usersRef添加侦听器时,侦听器不侦听子进程,只侦听根进程。当我打印出子数据库时,只打印出根数据库信息。
path- https://.....-default-rtdb.firebaseio.com/users
为什么孩子没被认出来?iOS和Android都是如此。
iOS
var usersRef = Database.database().reference().child("users")
override func viewDidLoad() {
super.viewDidLoad()
guard let uid = Auth.auth().currentUser?.uid else { return }
usersRef.child(uid)
let path = usersRef.description()
print("path- \(path)")
query = usersRef.queryOrderedByKey()
listenerRefHandle = query?.observe(.childAdded) { (snapshot) in
}
}
安卓系统
var usersRef = Firebase.database.reference.child("users")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
FirebaseAuth.getInstance().uid?.let { uid ->
usersRef.child(uid)
val path = usersRef.toString().substring(usersRef.root.toString().length-1)
println("path- $path")
query = usersRef
listenerRefHandle = query?.addChildEventListener(object : ChildEventListener {
}
}
}
如果我这样做,它们都可以正常工作,但问题是我必须强制打开UID。
var usersRef = Database.database().reference().child("users").child(Auth.auth().currentUser!.uid)
var usersRef = Firebase.database.reference.child("users").child(FirebaseAuth.getInstance()!!.uid)
1条答案
按热度按时间c0vxltue1#
这行代码在Swift和Kotlin中都没有做任何事情:
它构建对子
uid
的引用,但不将结果引用分配给任何对象。如果要使用构建的引用,请将其分配给变量: