@@ -51,6 +51,9 @@ private ActionCodeSettings(Builder builder) {
5151 if (!Strings .isNullOrEmpty (builder .dynamicLinkDomain )) {
5252 properties .put ("dynamicLinkDomain" , builder .dynamicLinkDomain );
5353 }
54+ if (!Strings .isNullOrEmpty (builder .linkDomain )) {
55+ properties .put ("linkDomain" , builder .linkDomain );
56+ }
5457 if (!Strings .isNullOrEmpty (builder .iosBundleId )) {
5558 properties .put ("iOSBundleId" , builder .iosBundleId );
5659 }
@@ -84,6 +87,7 @@ public static final class Builder {
8487 private String url ;
8588 private boolean handleCodeInApp ;
8689 private String dynamicLinkDomain ;
90+ private String linkDomain ;
8791 private String iosBundleId ;
8892 private String androidPackageName ;
8993 private String androidMinimumVersion ;
@@ -135,12 +139,28 @@ public Builder setHandleCodeInApp(boolean handleCodeInApp) {
135139 *
136140 * @param dynamicLinkDomain Firebase Dynamic Link domain string.
137141 * @return This builder.
142+ * @deprecated Use {@link #setLinkDomain(String)} instead.
138143 */
144+ @ Deprecated
139145 public Builder setDynamicLinkDomain (String dynamicLinkDomain ) {
140146 this .dynamicLinkDomain = dynamicLinkDomain ;
141147 return this ;
142148 }
143149
150+ /**
151+ * Sets the link domain to use for the current link if it is to be opened using
152+ * {@code handleCodeInApp}, as multiple link domains can be configured per project. This
153+ * setting provides the ability to explicitly choose one. If none is provided, the default
154+ * Firebase Hosting domain will be used.
155+ *
156+ * @param linkDomain Link domain string.
157+ * @return This builder.
158+ */
159+ public Builder setLinkDomain (String linkDomain ) {
160+ this .linkDomain = linkDomain ;
161+ return this ;
162+ }
163+
144164 /**
145165 * Sets the bundle ID of the iOS app where the link should be handled if the
146166 * application is already installed on the device.
0 commit comments