无法识别Firebase子路径

slsn1g29  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(122)

我有一个孩子,我附加到一个参考。当我尝试使用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)
c0vxltue

c0vxltue1#

这行代码在Swift和Kotlin中都没有做任何事情:

usersRef.child(uid)

它构建对子uid的引用,但不将结果引用分配给任何对象。
如果要使用构建的引用,请将其分配给变量:

let userRef = usersRef.child(uid)
val userRef = usersRef.child(uid)

相关问题