当Firebase动态点击时,Android Firebase数据库参考不起作用

时间:2018-11-28 12:53:11

标签: android firebase android-activity firebase-realtime-database firebase-dynamic-links

我的英语不是很好。

因此使用了Google翻译。

首先使用stackoverflow..sorry ..

我的问题是..

  • AppIcon单击→SplashActivity→HomeActivity→TestActivity /用户的一般流程:(常规)
  • DynamicLink单击→SplashActivity→TestActivity /当应用程序为后台时:(正常)
  • DynamicLink单击→SplashActivity→TestActivity /当应用程序关闭时:(NullPointerException)<<<<<<<<< This !!!

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动态链接时,此代码不起作用。 &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开发人员还建议没有代码问题。

添加,当我单击通知时,我发现了类似的问题。

有人帮帮我!

##加

thx回复.. 应用相同的问题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单击→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>

0 个答案:

没有答案