【发布时间】:2018-06-02 06:41:14
【问题描述】:
我正在尝试创建一个动态链接,当我尝试调试代码时,它正在调用回调方法 addOnSuccessListener 但之后它没有调用,或者我们说它正在跳过方法 onSuccess() 我不知道为什么它正在发生。
private void firebaseInvite() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();
String url = "https://larky.funswitch.io/?invitedby=" + uid;
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse(url))
.setDynamicLinkDomain("https://fmu3k.app.goo.gl")
.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder("io.funswitch.funrooster")
.setMinimumVersion(5)
.build())
.buildShortDynamicLink()
.addOnSuccessListener(shortDynamicLink -> {
在这之后我的调试器跳过了这段代码,它没有调用
mInvitationUrl = shortDynamicLink.getShortLink();
mDatabase.child("Name").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String referrerName = dataSnapshot.getValue(String.class);
String subject = String.format("%s wants you to play MyExampleGame!", referrerName);
String invitationLink = mInvitationUrl.toString();
String msg = "Let's play MyExampleGame together! Use my referrer link: "
+ invitationLink;
String msgHtml = String.format("<p>Let's play MyExampleGame together! Use my "
+ "<a href=\"%s\">referrer link</a>!</p>", invitationLink);
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, msg);
intent.putExtra(Intent.EXTRA_HTML_TEXT, msgHtml);
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivity(intent);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
});
}
请帮帮我..
【问题讨论】:
-
尝试将您的
addOnSuccessListener(shortDynamicLink -> {更改为toaddOnSuccessListener{shortDynamicLink ->也您的 addOnSuccessListener 需要执行程序类,这就是为什么我认为它会跳过它所以将其更改为 addOnSuccessListener(this,... -
非常感谢您的回答,但我在片段中这样做,我将 getActivity() 作为执行程序类,但仍然出现同样的问题,并且没有任何从 toaddOnSuccessListener{shortDynamicLink -> 开始的方法.
-
你不是用 lambda 表达式传递你的方法吗?!我也没有看到你在 firebase 文档
Task<ShortDynamicLink> shortLinkTask然后.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {中创建任何任务 -
是的,我只使用 lambda 表达式传递它。我需要帮助link
-
但这是针对短链接的,这是另一种创建短链接的方法,但我正在遵循这种方法,所以它应该可以工作。但我不知道为什么它不调用 onSuccess()
标签: android firebase-dynamic-links firebase-invites