# #c# #unity3d #firebase-dynamic-links
Вопрос:
Я хочу создать укороченную динамическую связь из длинной динамической связи
Я последовал шагам, показанным здесь: https://firebase.google.com/docs/dynamic-links/unity/create
тем не менее, я получаю один и тот же длинный URL-адрес, когда процесс сокращения завершен.
public void CreateInviteLink()
{
var components = new Firebase.DynamicLinks.DynamicLinkComponents(
// The base Link.
new System.Uri("https://myapp.com"),
// The dynamic link URI prefix.
"https://myapp.page.link")
{
IOSParameters = new Firebase.DynamicLinks.IOSParameters("com.myapp.myapp"),
AndroidParameters = new Firebase.DynamicLinks.AndroidParameters("com.myapp.myApp"),
};
Debug.Log("Long Dynamic Link: " components.LongDynamicLink);
var options = new Firebase.DynamicLinks.DynamicLinkOptions
{
PathLength = DynamicLinkPathLength.Unguessable
};
Firebase.DynamicLinks.DynamicLinks.GetShortLinkAsync(components, options).ContinueWith(task => {
if (task.IsCanceled)
{
Debug.LogError("GetShortLinkAsync was canceled.");
return;
}
if (task.IsFaulted)
{
Debug.LogError("GetShortLinkAsync encountered an error: " task.Exception);
return;
}
// Short Link has been created.
Firebase.DynamicLinks.ShortDynamicLink link = task.Resu<
Debug.LogFormat("Generated Short Dynamic Link: {0}", link.Url);
text.text = link.Url.ToString();
var warnings = new System.Collections.Generic.List<string>(link.Warnings);
if (warnings.Count > 0)
{
// Debug logging for warnings generating the short link.
}
});
}
журналы результатов
Длинная Динамическая Связь: https://myapp.page.link/?afl=amp;amv=0amp;apn=com.myapp.myAppamp;ibi=com.myapp.myappamp;ifl=amp;ipfl=amp;link=https://myapp.com UnityEngine.Отладка:Журнал(Объект)
Сгенерированная Короткая Динамическая Связь: https://myapp.page.link/?afl=amp;amv=0amp;apn=com.myapp.myAppamp;ibi=com.myapp.myappamp;ifl=amp;ipfl=amp;link=https://myapp.com UnityEngine.Отладка:Формат журнала(Строка, Объект[])
Редактировать:
Как я это сделал:
Вы не можете сократить динамические ссылки с помощью Firebase SDK в редакторе, но я использовал REST API и UnityWebRequest для тестирования коротких ссылок внутри редактора, и это сработало
IEnumerator HTTPRequestShortLink(string longDynamicLink)
{
WWWForm form = new WWWForm();
form.AddField("longDynamicLink", longDynamicLink);
// trigger of function is HTTP request. this link is the trigger for that func
UnityWebRequest www = UnityWebRequest.Post("https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=[YOUR_API_KEY]", form);
//for getting response
www.downloadHandler = new DownloadHandlerBuffer();
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success)
{
Debug.Log(www.error);
}
else
{
Debug.Log("Form upload complete! " www.GetResponseHeader("response"));
string responseText = www.downloadHandler.text;
// Parse returned json
parsedJsonObject obj = parsedJsonObject.CreateFromJSON(responseText);
Debug.Log("shortLink: " obj.shortLink);
Debug.Log("HTTP Response text: " responseText);
}
}