我在Firebase函数中如何接收和使用哈希映射时遇到问题。我看到数据正在正确发送。但是使用它是一个问题。
我如何从Android平台发送数据
fun onStartChatClicked() {
val functions = FirebaseFunctions.getInstance()
val map = HashMap<String, String>()
usersToChatWith.forEach {
map.put(it.userId!!, it.username!!)
}
functions.getHttpsCallable("startChatWithUsers")
.call(map)
.continueWith {task ->
if (task.isSuccessful) {
} else {
}
}
}
我也尝试过使用hashMapOf()
函数。以防万一:P
当我只是在firebase函数中打印接收数据时。我确实像一些典型的Json字符串一样得到它
{ '3SYIpex6u1Mx31j1UUngKAy95hq2': 'user1', JgoKrekU6nNusxeMBr6JAjkCReX2: 'user2' }
简化的Firebase功能代码
export const startChatWithUsers = functions.https.onCall(async (data , context) => {
/** A little code */
for (let [userId, username] of data) {
/** some code */
}
/** Some more code */
})
问题出在函数无法遍历给定数据的问题上。因为如果我理解正确的话。它认为给定的数据不是地图。
答案 0 :(得分:0)
根据问题中的代码,您似乎正在尝试通过获取对象中每个条目的键值对来迭代对象。
但是,您省略了将对象变成键值对集合所需的entries()
调用。
为您的for循环尝试此操作:
for (let [userId, username] of data.entries()) {
/** some code */
}