我目前正在开发一个使用 Firebase 的 kotlin 项目。在这里(除其他事项外)我让用户创建在 firestore 上使用 uid 注册的活动,并让创建者向其他人发送动态链接以加入他们。 单击后,链接应重定向到特定活动,并允许加入者进行一些(不相关的)操作,然后在 campagn 成员列表中注册新成员的 ID(存储在 firestore 上的上述活动文件中)。
我遇到的问题是 getDynamicLink(intent) 函数似乎没有返回任何东西。永远不会输入 onSuccessListener 和 onFailureListener,如果我尝试打印出任务,它会说该任务未完成。我似乎无法放置一个 onCompletion 监听器。
我检查了 Firebase 文档,但它只是说调用该函数并按预期工作了一点,正确注册了成员,但在调整其他函数后它停止工作,我似乎无法理解为什么。 意图过滤器正常工作,因为打开了正确的活动,但从未输入函数的侦听器。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_join_campaign)
Log.e("debug", "out of function") //this is shown
//intercettazione del link con intent
Firebase.dynamicLinks.getDynamicLink(intent)
.addOnSuccessListener(this) { pendingDynamicLinkData : PendingDynamicLinkData? ->
Log.e("debug", "in function") //this is never shown
// Get the deep link from the Dynamic Link data
var deepLink : Uri? = null
if (pendingDynamicLinkData?.link == null){
return@addOnSuccessListener
}
deepLink = pendingDynamicLinkData.link
Log.w(ContentValues.TAG, "link $deepLink") //this is never shown
//other code
}
.addOnFailureListener(this) { e ->
Log.w(ContentValues.TAG, "error handling link")
}
}
(第一次发帖,所以如果我需要展示其他内容或犯了一些错误,请告诉我,谢谢)
如前所述,我希望它至少显示“功能中”日志,但它从未显示过。此外,如果我尝试在调用函数之前通过记录它来打印意图,它会正确打印(我认为):
Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=https://gestorednd1.page.link/joinjoinjoin99 flg=0x13000000 cmp=com.example.gestorednd/.Activities.JoinCampaignActivity }
我已经三次检查了我的文件和清单中的意图过滤器(我认为这不是问题,因为显示了正确的活动)。