Ссылка на базу данных Android Firebase не работает, когда Firebase Dynamic Click - PullRequest
0 голосов
/ 28 ноября 2018

Мой английский не очень хорош.

Итак, Google Translator был использован.

И первое использование stackoverflow..Извините ..

Мой вопрос ..

  • AppIcon Click → SplashActivity → HomeActivity → TestActivity / общий поток пользователя: (нормальный)
  • DynamicLink Click → SplashActivity → TestActivity / когда приложение является фоновым: (нормальный)
  • DynamicLink Нажмите → SplashActivity → TestActivity / Когда приложение выключено: (NullPointerException) <<<<<<<<< This !!! </li>

TestActiviy.java

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

    DatabaseReferenc.child("user_contents").child(contentKey).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    Log.d("lkj contentDTO?", "Exist");
                    ContentDTO contentDTO = dataSnapshot.getValue(ContentDTO.class);
                    Log.d("lkj contentDTO Date", contentDTO.getUploadDate());
                } else {
                    Log.d("lkj contentDTO?", "Not exist");
                }
                ContentDTO contentDTO = dataSnapshot.getValue(ContentDTO.class);
                testActivity_textView_date.setText(contentDTO.getUploadDate());

Этот код не работает при нажатии Firebase Dynamic Link.& off App.

   java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.models.ContentDTO.getUploadDate()' on a null object reference

AndroidManifest.xml

<activity android:name=".splash.SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".views.TestActivity"/>

или

    <activity android:name=".splash.SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.LAUNCHER" />                
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:host="example.com"
                android:scheme="https" />
            <data
                android:host="example.com"
                android:scheme="http" />
        </intent-filter>        

    <activity android:name=".views.TestActivity"/>

contentKey - это нормальнов справочном разделе (обязательно) и разработчик Android также сообщил, что не было проблем с кодом.

Добавить Я обнаружил похожую проблему при нажатии на Уведомление.

Sombody Помогите мне!

##add

thx reply .. Та же самая проблема применила contentKey жесткое кодирование ("-LPIPBqOPlg5DbbI4w1-" ...)

"user_contents" : {
"-LPIPBqOPlg5DbbI4w1-" : {
  "alarm" : "C0O0",
  "candidateScore_0" : 2,
  "candidateScore_1" : 1,
  "candidateScore_2" : 0,
  "candidateScore_3" : 0,
  "contentHit" : 3,
  "contentId" : "2018102106365098",
  "contentKey" : "-LPIPBqOPlg5DbbI4w1-",
  "contentPicker" : {
    "CHxiKLOuyYZaVslfPlyiyGgbsLF3" : 1,
    "Q5kqYMje5ca2vREGqiXpLrxGHSF3" : 0,
    "Qw3k30K3McWOvZW02ZXwKUfeqzw1" : 0
  },
  "contentType" : "경제, 정치",
  "description" : "힘들지만...",
  "isUserLike" : false,
  "itemViewType" : 2,
  "likeCount" : 1,
  "likes" : {
    "DxYvyfJFgqgnIg0jXbIDC57tQSs2" : true
  },
  "pickCandidate" : 0,
  "pollMode" : "단일 투표",
  "replyCount" : 1,
  "statistics_code" : "0:1:0:0:0:0:0:0:0:0",
  "title" : "누가더 쓰레기죠??",
  "uid" : "Qw3k30K3McWOvZW02ZXwKUfeqzw1",
  "uploadDate" : "2018.10.21(일)06:36:50",
  "userID" : "dddddfdfdfdf",
  "userLike" : false
},

Я нашел странное решение .... Причина неизвестна ...: (*

  • DynamicLink Click → SplashActivity (FirebaseDynamicLinks.getInstance (). GetDynamicLink (getIntent ())) → Обработка веток → TestActivity / Когда приложение выключено: (NullPointerException)
  • Нажмите DynamicLink → SplashActivity → HomeActivity ((FirebaseDynamicLinks.getInstance (). GetDynamicLink (getIntent ())) → Обработка ветки → TestActivity / Когда приложение выключено: (Обычное)

в это время AndroidManifest.xml

        <activity android:name=".splash.SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...