Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase动态链接没有';t在安装后第一次启动时调用动态链接_Java_Android_Firebase_Firebase Dynamic Links - Fatal编程技术网

Java Firebase动态链接没有';t在安装后第一次启动时调用动态链接

Java Firebase动态链接没有';t在安装后第一次启动时调用动态链接,java,android,firebase,firebase-dynamic-links,Java,Android,Firebase,Firebase Dynamic Links,我读过很多关于stackoverflow的问题,但没有一个能回答这个问题 我正在尝试设置动态链接,这样一个链接将深度链接用户到应用程序(如果他们已经安装),如果他们没有安装,则链接到play store。我希望链接能够在play store安装过程中幸存下来,并与链接一起发送到启动器活动。当应用程序已经安装时,动态链接会起作用。但是,当应用程序未安装时,它会将用户发送到play store,但动态链接在安装过程中无法存活。我曾读到,当用户通过动态链接被发送到play store时,“Open”(

我读过很多关于stackoverflow的问题,但没有一个能回答这个问题

我正在尝试设置动态链接,这样一个链接将深度链接用户到应用程序(如果他们已经安装),如果他们没有安装,则链接到play store。我希望链接能够在play store安装过程中幸存下来,并与链接一起发送到启动器活动。当应用程序已经安装时,动态链接会起作用。但是,当应用程序未安装时,它会将用户发送到play store,但动态链接在安装过程中无法存活。我曾读到,当用户通过动态链接被发送到play store时,“Open”(打开)按钮应改为“Continue”(继续),但当我这样做时,它仍然显示“Open”(打开)。以下是我在AndroidManifest.xml中针对该活动的活动

    <activity
        android:name="com.xxx.xxx.xxx.xxx"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.SplashScreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="yyy.page.link"
                android:scheme="http" />
            <data
                android:host="yyy.page.link"
                android:scheme="https" />
        </intent-filter>
    </activity>

活动如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ia_login);

        checkIfReferral();
    }

    private void checkIfReferral(){
    FirebaseDynamicLinks.getInstance()
            .getDynamicLink(getIntent())
            .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                    // Get deep link from result (may be null if no link is found)
                    Uri deepLink = null;
                    Log.w(TAG, "FBDL we have a dynamic link");
                    if (pendingDynamicLinkData != null) {
                        deepLink = pendingDynamicLinkData.getLink();
                    }else{
                        Log.w(TAG, "FBDL pending dynamic Link Data is null , returning " );
                        return;
                    }
                    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
                    Boolean ret1 = (user==null);
                    Boolean ret2 = (deepLink !=null);
                    Boolean ret3 = (deepLink.getBooleanQueryParameter("invitedby", false));
                    referrerUid = deepLink.getQueryParameter("invitedby");                   
                    if (deepLink != null && deepLink.getBooleanQueryParameter("invitedby", false)) {
                        referrerUid = deepLink.getQueryParameter("invitedby");
                        createAnonymousAccountWithReferrerInfo(referrerUid);
                    }
                }
            }).addOnFailureListener(this, new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.w(TAG, "FBDL we couldnt receive dynamic link");
        }
    });

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    if(user !=null) {
        Log.w(TAG, "FBDL if use != null");
        userRecord = FirebaseDatabase.getInstance().getReference()
                .child("users")
                .child(user.getUid());
    }
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u ia\u登录);
checkIfReferral();
}
私有void checkIfReferral(){
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(此,新的OnSuccessListener(){
@凌驾
成功时的公共无效(PendingDynamicLinkData PendingDynamicLinkData){
//从结果获取深度链接(如果未找到链接,则可能为空)
urideeplink=null;
w(标签,“FBDL我们有一个动态链接”);
如果(PendingDynamicClinkData!=null){
deepLink=pendingDynamicLinkData.getLink();
}否则{
w(标记,“FBDL挂起的动态链接数据为空,返回”);
返回;
}
FirebaseUser=FirebaseAuth.getInstance().getCurrentUser();
布尔ret1=(用户==null);
布尔值ret2=(deepLink!=null);
布尔值ret3=(deepLink.getBooleanQueryParameter(“invitedby”,false));
refererUID=deepLink.getQueryParameter(“invitedby”);
if(deepLink!=null&&deepLink.getBooleanQueryParameter(“invitedby”,false)){
refererUID=deepLink.getQueryParameter(“invitedby”);
使用refererInfo(refererUID)创建匿名帐户;
}
}
}).addOnFailureListener(此,新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
w(标签,“FBDL我们无法接收动态链接”);
}
});
FirebaseUser=FirebaseAuth.getInstance().getCurrentUser();
如果(用户!=null){
Log.w(标记,“如果使用FBDL!=null”);
userRecord=FirebaseDatabase.getInstance().getReference()
.child(“用户”)
.child(user.getUid());
}
}
我添加了动态链接。它与清单文件中声明的相同。我已经添加了从应用程序签名的发布密钥生成的SHA 256。该应用程序在Google Play Store产品发布版上发布

请告诉我是什么错误

当动态链接将我带到Google Play store时,为什么我没有在Google Play store上看到“continue”?

我看到在Firebase动态链接的实现中启用了该功能。应用程序链接要求将动态链接域添加到清单意图筛选器中,但动态链接仍需要具有应用程序将接收的内容。通过在意向过滤器中添加深度链接,不仅可以使FDL与应用程序一起工作,还可以确保应用程序在使用常规链接时仍能工作


如果在此之后您仍然有问题,您可以在此处提交问题。您可能需要共享动态链接和正在使用的Firebase SDK版本。

我认为您需要为应用程序启用链接处理验证


您必须向将处理动态链接的活动添加自动验证的意图过滤器,将主机设置为Firebase控制台中项目的动态链接域。在
AndroidManifest.xml
中:

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:host="yyy.page.link" android:scheme="http"/>
    <data android:host="yyy.page.link" android:scheme="https"/>
</intent-filter>


您是否尝试将它们分离为
DeeplinkActivity
launchectivity
?这不起作用。问题的作者清楚地告知,当应用程序已经安装时,链接可以工作。但是,该链接在应用程序安装过程中无法生存,并在该过程中丢失所有深度链接查询参数。这不起作用。问题的作者清楚地告知,当应用程序已经安装时,链接可以工作。但是,该链接在应用程序安装过程中无法生存,并在安装过程中丢失所有深度链接查询参数。
<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:host="yyy.page.link" android:scheme="http"/>
    <data android:host="yyy.page.link" android:scheme="https"/>
</intent-filter>