Firebase 초대에서 커스텀 공유를 사용한 동적 링크로 마이그레이션

Firebase 초대는 앱에서 Firebase 동적 링크를 수신하는 메커니즘과 이 링크를 SMS 또는 이메일로 공유하는 기능을 제공했습니다. 입소문을 통해 앱 사용자를 늘릴 수 있도록 Firebase 초대를 개발했지만 시간이 지나면서 여러분이 현재의 Firebase 초대보다 더 효과적인 방법으로 사용자가 친구와 앱을 공유하도록 유도하고 있음을 알게 되었습니다.

Firebase 초대 사용량은 줄었지만 여전히 Firebase 동적 링크를 사용자 간 공유 솔루션의 주요 수단으로 많이 사용하고 있다는 사실도 확인되었습니다. 그에 따라 Google에서는 앱에 사용자 간 공유 기능을 빌드하는 데 Firebase 동적 링크가 가장 좋은 수단이 되도록 집중적으로 노력하고 있습니다. 이러한 변화의 일환으로 Firebase 초대 기능의 지원을 중단했으며 2020년 1월 24일부터는 지원이 전면 종료됩니다.

중단되면 일어나는 일과 발생하는 영향

2020년 1월 24일부터는 사용자가 더 이상 Firebase 초대를 주고 받을 수 없으며 초대 링크의 전송 및 수신 호출 시 초대 백엔드 서비스에서 오류 응답을 반환하기 시작합니다. 현재 이러한 서버 응답에 대한 실패 사례를 단계적으로 해결할 수 있도록 SDK에 오류 처리를 포함했기 때문에 사용자는 오류 없이 앱을 계속 사용할 수 있지만 Firebase 초대의 사용을 중단하고 커스텀 공유 솔루션과 함께 Firebase 동적 링크를 사용하는 대체 솔루션으로 전환하는 것이 좋습니다.

그 방법은 다음과 같습니다.

먼저, 사용자가 친구와 공유할 수 있는 동적 링크를 만듭니다. Firebase 초대를 설정하는 방법과 유사하기 때문에 이미 이 단계는 익숙할 것입니다. 사용자가 소셜 네트워크를 통해 앱을 공유하여 공유되는 URL의 디자인을 맞춤설정하는 경우 링크에 소셜 메타데이터를 추가하는 등 동적 링크에 특정 매개변수를 추가할 수도 있습니다.

공유 솔루션 빌드

그런 다음, 사용자가 친구와 링크를 공유할 수 있도록 공유 솔루션을 빌드합니다. 빌드할 솔루션은 Firebase 초대에 있는 이전 기능을 대체할 공유 기능을 어떻게 제공하느냐에 따라 달라지겠지만 대부분의 모바일 앱은 이미 플랫폼에서 기본적으로 제공하는 기능을 활용할 수 있습니다.

Android의 경우 SMS 및 이메일 공유는 물론 다른 유명 소셜 네트워크 및 메시징 앱까지 지원해 주는 간단한 솔루션을 만들려면 작업이 Intent.ACTION_SEND와 같은 작업 세트를 포함한 일반 인텐트를 사용하면 됩니다. 그러면 사용자가 설치한 앱이 공유 인텐트를 처리할 수 있기만 하면 앱의 데이터를 해당 앱과 간편하게 공유할 수 있습니다.

다음 예와 유사한 코드라면 정상적으로 작동할 것입니다. 자체 코드에 상수 문자열 리소스를 사용하는 것이 좋습니다.

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Here's a new lesson for" +
        " learning more Miwok vocabulary:\n\n" + dynamicLink);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Let's Learn Miwok!");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent,
        getResources().getText(R.string.send_to)));

전체 예 및 자세한 내용은 다른 앱에 간단한 데이터 전송을 참조하세요.

위의 코드 스니펫은 아래 화면에 나온 초대 흐름과 유사한 흐름을 생성합니다.

Android에서 공유하기

iOS 개발자라면 UIActivityViewController를 사용해 데이터의 일부로 생성된 링크를 커스텀 VC에 전달하면 됩니다. 이 방법은 아래 화면과 유사한 공유 흐름을 제공합니다.

iOS에서 공유하기

앱에서 동적 링크 받기

끝으로 Firebase 초대 사용이 종료된 후 앱에서 사용자 간 공유를 제공하기 위한 마지막 단계는 앱에서 동적 링크를 받는 것입니다.

Android의 경우 프로세스에 변함이 없으므로 변경사항이 별로 없습니다. 단, Firebase 초대 사용이 종료되면 초대 ID도 없어지므로 앱에서 호출 시 FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(data)를 통해 초대 ID를 추출하는 호출을 삭제해야 합니다. 이와 관련된 자세한 내용은 Android 앱에서 동적 링크 받기를 참조하세요.

iOS에서는 FIRReceivedInvite 객체를 FIRDynamicLink 객체로 변경해야 합니다. 둘 다 유사한 데이터를 포함한 객체입니다. 자세한 내용은 iOS 앱에서 동적 링크 받기를 참조하세요.

Unity 개발자의 경우 위의 설명에 상응하는 솔루션과 여러 오픈소스 라이브러리를 통해 사용자 간 공유 기능을 이전할 수 있습니다. 적절한 솔루션을 제공하는 데 도움이 필요한 경우 아래 연결된 지원 리소스에 문의하세요.

Firebase 초대는 Google에서 자부심을 갖고 만든 유용한 도구였습니다. 하지만 미래 지향적 관점에서 사용자의 앱 초대를 유도하는 데 있어 더욱 큰 유연성과 제어를 지원하기 위한 Firebase 동적 링크 개발에 전념할 수 있게 되어 기쁘게 생각합니다. Firebase 동적 링크 및 커스텀 공유 솔루션 설정에 대한 질문은 StackOverflow 또는 그 밖의 지원 포럼에 문의하세요.