총 게시물 39,242건, 최근 1 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

안드로이드 파이어베이스 다이나믹링크 파라미터 넘기는게 잘안됩니다.

글쓴이 : n4u1 날짜 : 2018-11-25 (일) 18:44 조회 : 2188
글주소 : http://www.androidside.com/B49/170489
 
  임베디드 시스템 마이크로비젼
임베디드 개발보드, 개발용역, IAR 컴파일러 총판, 에뮬레이터.
www.mvtool.co.kr
  KG아이티뱅크신규문의 전명구
KG아이티뱅크학원방문상담예약, 실무형IT교육, 학습자, 맞춤자바교육, 수강료할인.
www.hrditbank.com
  SBS아카데미게임학원 김보람
게임업계 취업 전문과정! 1:1멘토링,포트폴리오제작,국비할인,취업연계,게임개발과정
gwangjusbsgameacademy.com
신청하기



안녕하세요.

초보입니다

공유 or 친구초대 기능을 만드는중에

파이어베이스 다이나믹 링크를 생성하고 특정 액티비티까지 도착하게까지는 성공했습니다만

동적링크 수신과정이 잘 안됩니다.

링크를 잘못만든건지... 수신하는 코드에서 문제인건지 잘 모르겠네요


PollRankingActivity에서 contentKey라는 유니크한 키를 이용해서 firebase realtime Databas에서

데이터를 가져와서 액티비티에 뿌려줘야합니다

( 여기서 contentKey는 디비에서 어떤 게시글하나의 키 같은겁니다)


일반적인 앱 사용중에는 HomeActivity > PollRankingActivity로 이동하게 되는데 인텐트에 putExtra로 contentKey를 넘겨 열리게됩니다


근데 링크를 클릭해서 바로 PollRankingActivity가 열리면 contentKey가 필요하잖아요?

그래서 링크에 보내주려고 하는데 그게 잘 안되네요..


링크는

https://aqapoll.page.link/?link=https://aqa.ranking.com&apn=com.n4u1.AQA.AQA&st=랭킹&sd=랭킹&contentKey=-LRMmxJ9dKVmYIqu7qOo 

or

https://aqapoll.page.link/?link=https://aqa.ranking.com/?contentKey=-LRMmxJ9dKVmYIqu7qOo&apn=com.n4u1.AQA.AQA&efr=1 

etc...

이런식으로 수동으로 만들어서 시도해봤는데 안되네요

contentKey 들어가는 위치나 규칙이 잘못된것 같기도하고 이렇게 저렇게 검색하면서 해봤는데도 안됩니다..



Firebase Dynamic Link

링크 이름
순위투표
Android 앱
plat_androidcom.n4u1.AQA.AQA
iOS 앱
plat_ios
짧은 동적 링크


AndroidManifest.xml

<activity android:name=".views.PollRankingActivity">
<intent-filte>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="aqa.ranking.com" android:scheme="https" />
</intent-filter>
</activity>





PollRankingActivity.java

아래코드에서 addOnSuccessListener로 진입조차 안하는거 같습니다.

Log.d("lkj deepLink??", deepLink.toString());

로그가 안찍히는거보니...


.

.


public class PollRankingActivity extends AppCompatActivity {

.

.



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_poll_ranking);

.

.


        //동적링크에서 contentKey받기

        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.d("lkj deepLink??", deepLink.toString());

                        if (pendingDynamicLinkData != null) {

                            deepLink = pendingDynamicLinkData.getLink();


                            contentKey = deepLink.getQueryParameter("contentKey");

                            Log.d("lkj deepLink", deepLink.toString());

                            Log.d("lkj getQueryParameter", deepLink.getQueryParameter("contentKey"));

                        }


                        // Handle the deep link. For example, open the linked

                        // content, or apply promotional credit to the user's

                        // account.

                        // ...


                        // ...

                    }

                })

                .addOnFailureListener(this, new OnFailureListener() {

                    @Override

                    public void onFailure(@NonNull Exception e) {

                        Log.w("lkj getDynLink", "getDynamicLink:onFailure", e);

                    }

                });

        //동적링크에서 contentKey받기 end


}





그래서 contentKey가 없으니 이런데서 null exception이 떨어집니다

mDatabaseReference = FirebaseDatabase.getInstance().getReference("user_contents").child(contentKey);  




뭐를 해봐야 할까요?







질문자가 자신의 포인트 10 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 8을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

은빛파도 2018-11-26 (월) 10:02
링크안에 또 링크가 들어가 있어서 파싱 에러 날듯 하네요...

링크 빼고 기본 url 형식으로 먼저 테스트 해보세요.
댓글주소 추천 0 반대 0
n4u1 2018-11-26 (월) 16:43
  감사합니다
Firebase 가이드보고 URL직접생성 해서 했는데 URL을 잘못만든것 같네요
매개변수로 동적링크만들기하니 됐네요
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기