在我的情况下,登录应用程序时需要通过UID从realTime Database获取用户配置文件
在文档中必须使用添加值事件通知程序才能从实时数据库读取
//如果我有obj的id,如何直接从实时firebase获取值
fun loginByEmail(email: String, password: String) {
firebaseAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener { task ->
if (task.isSuccessful) {
getUserValueFromDB(firebaseAuth.currentUser!!.uid, email)
}
}
}
//我的问题是,这里不能使用这种方法
private fun getUserValueFromDB(uid: String, email: String) { //todo
databaseReference.child("Users").addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
for (snap in snapshot.children) {
var data = snap.getValue(User::class.java)
if (data?.id == uid) {
prefs.userImage = data.image!!
GlobalScope.launch {
_loginStatus.emit(true)
}
}
}
}
override fun onCancelled(error: DatabaseError) {
TODO("Not yet implemented")
}
})
}
如果希望从数据库中读取某个特定用户的数据,可以使用查询来实现。
private fun getUserValueFromDB(uid: String, email: String) {
var query = databaseReference.child("Users").orderByChild("id").equalTo(uid)
query.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
...
您的代码的其余部分可以保持不变,您只需加载少得多的数据。
问题内容: 我已经在Swift 2中使用了这种方法 但是不知道如何在不使用 NSDictionary(contentsOfFile:path)的* 情况下在Swift3中读取plist * 问题答案: Swift的本机方法是使用 ~~~~ 您还可以使用类型强制转换: 但您明确地写道: 不使用NSDictionary(contentsOf … 基本上,不要在Swift中不进行强制转换而使用,您将丢弃
问题内容: 我必须用Java读取CSV文件,我用Google对其进行了搜索,但是我有办法使用标题进行读取;但我没有文件中可用的列标题和列数的信息。在这种情况下,我该如何读取CSV文件。 谢谢 问题答案: 您可以假设每一行都是String类,并将所有内容读取到二维数组中。之后,您可以尝试将字符串解析为适当的格式。 但是,如果您不知道行数据类型,这只是一个猜测。
我是说 现在我可以得到这个房间的孩子了,但是我想知道是否有一种方法可以使用来完成同样的事情。
问题内容: 如果我要使用DefaultServeMux(我将其指定为ListenAndServe的第二个参数来指定),那么我可以访问,您可以在Go Wiki的以下示例中看到该: 在当前代码中,我无法使用DefaultServeMux,即我将自定义处理程序传递给ListenAndServe 因此,我没有内置的代码。但是,我必须将一些授权代码修改为需要类似的授权代码。例如,如果我一直在使用Defaul
问题内容: 我正在解决Programming Pearls,第二版,第1列中的问题。其中一个问题涉及编写一个程序,该程序仅使用大约1 MB的内存将文件内容存储为位数组,每个位代表是否或文件中没有7位数字。由于Java是我最熟悉的语言,因此即使作者似乎已经想到了C和C ++,我还是决定使用它。 由于我是为了解决我正在处理的问题而假装有限的内存,因此我想确保读取文件的过程完全没有缓冲。 在我阅读Jav
问题内容: 建立一个社交网络,我正在尝试获取实时通知。当前,站点使用setInterval每隔几秒钟发送一次AJAX请求。看起来像这样: 那很好,但是我非常担心创建服务器过载。我尝试了彗星技术,但由于某种原因,它发送的请求比上述代码多得多。还有其他更有用的技术来实时发布此数据吗? 编辑:为实现长轮询,我使用了以下内容(使用此处提到的示例:http : //techoctave.com/c7/pos