你如何测试Firebase邀请?
你如何测试动态链接或邀请?是否有可以运行的adb命令,以及该链接将如何生成。你如何测试Firebase邀请?
我试过(用不同的变化)
adb shell am start -W -a android.intent.action.VIEW -d "https://play.google.com/store/apps/details?id=com.gonevertical.chatterbox\\&pcampaignid=appinvite_\\&referrer=deep_link_id%3Dhttps://gonevetical.com/chatterbox/invite/group/-KJnkQfRjZfAH9-U_U4a%26invitation_id%3D20832144509-9642991a-de62-4d40-ba93-b991208c2d31" com.gonevertical.chatterbox
项目 https://github.com/branflake2267/chatterbox/blob/master/android/app/src/main/AndroidManifest.xml
开始测试之前邀请您应该:
- 您的应用程序连接到您的Firebase项目,请从开始3210。
- 启用Firebase动态链接,从Firebase console开启动态链接部分并接受服务条款(如果提示),请执行此操作。
- Add Firebase to your Android project。
- 添加依赖于火力地堡邀请到您的应用程序级
build.gradle
文件:
摇篮文件:
compile 'com.google.firebase:firebase-invites:9.0.2'
发送邀请
使用AppInviteInvitation.IntentBuilder类建立一个Intent
:
private void onInviteClicked() {
Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title))
.setMessage(getString(R.string.invitation_message))
.setDeepLink(Uri.parse(getString(R.string.invitation_deep_link)))
.setCustomImage(Uri.parse(getString(R.string.invitation_custom_image)))
.setCallToActionText(getString(R.string.invitation_cta))
.build();
startActivityForResult(intent, REQUEST_INVITE);
}
启动AppInviteInvitation
意图打开用户选择要邀请的联系人的联系选择器。邀请通过电子邮件或短信发送。用户选择联系人和发送之后的邀请,您的应用程序将收到回调到onActivityResult
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode);
if (requestCode == REQUEST_INVITE) {
if (resultCode == RESULT_OK) {
// Get the invitation IDs of all sent messages
String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data);
for (String id : ids) {
Log.d(TAG, "onActivityResult: sent invitation " + id);
}
} else {
// Sending failed or it was canceled, show failure message to the user
// ...
}
}
}
接收邀请
当用户收到邀请时,如果用户没有安装应用程序,他们可以选择从Google Play商店安装应用。然后,在安装应用程序之后,或者如果应用程序已安装,则应用程序将启动并接收其内容的URL(如果已发送)。要接收您的应用网址的内容,调用getInvitation
方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
// Create an auto-managed GoogleApiClient with access to App Invites.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(AppInvite.API)
.enableAutoManage(this, this)
.build();
// Check for App Invite invitations and launch deep-link activity if possible.
// Requires that an Activity is registered in AndroidManifest.xml to handle
// deep-link URLs.
boolean autoLaunchDeepLink = true;
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
.setResultCallback(
new ResultCallback<AppInviteInvitationResult>() {
@Override
public void onResult(AppInviteInvitationResult result) {
Log.d(TAG, "getInvitation:onResult:" + result.getStatus());
if (result.getStatus().isSuccess()) {
// Extract information from the intent
Intent intent = result.getInvitationIntent();
String deepLink = AppInviteReferral.getDeepLink(intent);
String invitationId = AppInviteReferral.getInvitationId(intent);
// Because autoLaunchDeepLink = true we don't have to do anything
// here, but we could set that to false and manually choose
// an Activity to launch to handle the deep link here.
// ...
}
}
});
}
重要提示:上述代码需要连接GoogleApiClient启用AppInvite.API
。
如果launchDeepLink
参数是true
,该应用程序会自动与您的应用网址的内容,您的应用可以正常处理重新登场。如果launchDeepLink
参数是false
,则可以手动启动由getInvitationIntent返回的意图以在适当时处理URL。
这是关于热到Send and Receive Firebase Invites from Your Android App的更多信息。
链路测试Android Studio中
您还可以使用Android的工作室版本2.x功能的深层链接测试功能来验证您的应用程序可以与指定的URL启动。要进行设置,首先选择运行>编辑配置从Android应用程序>常规部分。要测试HTTP URL,请在启动选项中选择深层链接,然后输入要测试的URL。如果链接成功,应用程序应该在模拟器或连接的设备上启动。否则,在运行窗口中出现错误消息。
的Android调试桥
测试您的链接中使用Android调试桥,其中{URL}
代表在应用清单中声明的HTTP URL打开您的应用。
adb shell am start -a android.intent.action.VIEW -d "{URL}" com.example.android
在link有关于如何测试您的实施的更多信息。
您刚刚提到的所有信息都只是从Firebase邀请(https://firebase.google.com/docs/invites/android)的设置文档中复制而来。 OP(和我)想知道如何通过邀请链接模拟安装应用程序。现在看来,确保邀请链接工作的唯一方法是在将应用推送到Play商店后进行测试。 – Josh
这通常会将您发送到Play商店或App Store以下载应用程序。因为这是一个测试应用程序,它将链接到一个不存在的商店页面。另一种方法是尝试使用[Firebase Invites Quickstart](https://github.com/firebase/quickstart-cpp/blob/master/invites/testapp/readme.md)。它演示了使用Firebase Invites C++ SDK发送和接收Firebase邀请。当您首次运行应用程序时,它将检查传入的动态链接或邀请,并报告是否能够获取邀请。还允许您模拟接收来自朋友的邀请。 –
只是从官方文档复制粘贴 –
我通过在FireBase控制台中生成链接,将链接复制到电子邮件,在设备中打开电子邮件并单击设备上的链接来测试它们。您可以通过这种方式验证应用程序。
如果要调试链接,请执行相同的操作,但将完整链接复制到电子邮件中,而不是简短链接,然后尝试使用完整链接的变体。
我发现下面的链接发布在赏金答案的评论中。它允许您接收邀请并测试处理来自邀请的新安装的代码。
要模拟接收朋友的邀请,您可以发送自己的邀请,卸载测试应用程序,然后单击电子邮件中的链接。
这通常会将您发送到Play商店或App Store下载应用程序。因为这是一个测试应用程序,它将链接到一个不存在的商店页面。
点击邀请链接后,重新安装并在设备或模拟器上运行该应用程序,并查看在接收方获取的邀请。
我只是喜欢staackuser2,有一个提到。您可以在Google Play封闭的Alpha/Beta上发布您的应用。将自己和另一个电子邮件帐户添加到测试人员列表中。这样,该应用就会在Google Play上显示,供注册为测试人员的两台设备使用。 然后,您可以在两个帐户之间发送邀请。点击电子邮件中的链接会将您带到App Store上的应用程序。如果您安装它,则可以在应用程序启动时检查邀请ID(以及可能的其他深层链接信息,例如促销代码等)。
我尝试过使用adb shell,您将测试安装引用程序的方式,但似乎不起作用。作为参考:'广播-a com.android.vending.INSTALL_REFERRER -n {com.your.package} /com.tune.TuneTracker - 引用者“test_referrer = test”' – staackuser2
我知道这不是一个有用的评论,更多的咆哮:我已经发现测试firebase是相当糟糕的,因为:总是事后......我希望它会随着时间的推移而改善,因为他们做了那些奇妙的代码段等(我承认这真的很棒) – Creos
@Creos同意了。我对缺乏文档和例子感到有些震惊。我已经看到了Github上的那些,但这个问题是他们说它支持的实际用例的一个例子,但实际上并没有说明如何去做。 – staackuser2