Il database Firebase non recupera i dati da Firebase Database Reference

Sep 03 2020

Tutto funziona bene ma DatabaseReference non sta recuperando i dati, è come ignorare il mio codice da eseguire e come se Internet non funzionasse, per favore aiutatemi sono nuovo qui in questa comunità di seguito sono i miei codici e le immagini.

In precedenza funzionava, ma poiché ho appena modificato del codice per rendere solo currentVersion> = vCode in modo che l'utente possa continuare anche se il valore nel database è <currentVersion ma, dopo averlo creato, la mia app non stava recuperando i dati da Firebase e ho provato per disinstallarlo, installare di nuovo dal Play Store la versione precedente, inoltre, non stava recuperando i dati per favore aiutatemi. Non so cosa ho fatto di sbagliato. Quindi sto pensando di installare ParrotOS, quindi forse funzionerà, ma è meglio chiedere prima agli esperti

immagine database Firebase

MainActivity.java

public class MainActivity extends AppCompatActivity {
    TextView appName;
    FirebaseUser firebaseUser;
    String currentVersionName;
    long currentVersionCode;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        appName = findViewById(R.id.appName);
        currentVersionName = BuildConfig.VERSION_NAME;
        currentVersionCode = BuildConfig.VERSION_CODE;
        animateAppName();
        netConn();
        FirebaseAuth.getInstance();

    }

    public void applyScreenChange(){
        String sharedPerfId = "MyAppPref";
        SharedPreferences sharedPreferences = getSharedPreferences(sharedPerfId,0);
        boolean isAdvertiserLoggedIn = sharedPreferences.getBoolean("isAdvertiserLoggedIn",false);
        boolean isCreatorLoggedIn = sharedPreferences.getBoolean("isCreatorLoggedIn",false);
        if (isAdvertiserLoggedIn){
            skipSetupToAdvertiser();
        }
        else if (isCreatorLoggedIn){
            skipSetupToCreator();
        }
        else {
            newActivity();
        }
    }

    public void animateAppName(){
        appName.setTranslationY(-1000f);
        appName.animate().translationYBy(1000f).setDuration(500);
    }

    public void netConn(){
        ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
        assert connectivityManager != null;
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        if(networkInfo == null || !networkInfo.isConnected() || !networkInfo.isAvailable()){
            AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
            alertDialog.setTitle("No Internet Connection");
            alertDialog.setMessage("Connect to Network and Then try again");
            alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Exit", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    MainActivity.super.onBackPressed();
                }
            });
            alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Retry", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    netConn();
                }
            });
            alertDialog.setCanceledOnTouchOutside(false);
            alertDialog.show();

        }else {

//            Check older version

//            applyScreenChange();


            DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Version");
            databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot snapshot) {
                    String vName = (String) snapshot.child("latestVersionName").getValue();
                    long vCode = (long) snapshot.child("latestVersionCode").getValue();
                    if (currentVersionName.equals(vName) && currentVersionCode >= vCode){
                        applyScreenChange();

                        // TODO: 16-08-2020 add condition to open app if version is higher
                    }else {
                        Toast.makeText(MainActivity.this, "Old Version", Toast.LENGTH_SHORT).show();
                        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
                        alertDialog.setTitle("You're on Older Version");
                        alertDialog.setMessage("This Version is no more supported, Kindly update your App to Continue");
                        alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Exit", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                MainActivity.super.onBackPressed();
                            }
                        });
                        alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Update", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
//                                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.app_link))));
                                Toast.makeText(MainActivity.this, "Kindly Search Sponso on PlayStore and Update", Toast.LENGTH_SHORT).show();
                                finish();
                            }
                        });
                        alertDialog.setCanceledOnTouchOutside(false);
                        alertDialog.show();
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError error) {

                }
            });
        }
    }

    public void newActivity(){
                Intent intent = new Intent(MainActivity.this, AdvertiserCreatorChooser.class);
                startActivity(intent);
                finish();
    }


    public void skipSetupToAdvertiser(){
        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        if (firebaseUser!=null) {
                    Intent intent = new Intent(MainActivity.this, AdvertiserHome.class);
                    startActivity(intent);
                    finish();
        }else{
                    Intent intent = new Intent(MainActivity.this, AdvertiserLoginRegister.class);
                    startActivity(intent);
                    finish();
        }
    }

    public void skipSetupToCreator(){
        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        if (firebaseUser!=null) {
                    Intent intent = new Intent(MainActivity.this, CreatorHome.class);
                    startActivity(intent);
                    finish();
        }else {
                    Intent intent = new Intent(MainActivity.this, CreatorLoginRegister.class);
                    startActivity(intent);
                    finish();
        }
    }
}

manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.webroose.sponso">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:allowBackup="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Advertiser.AdvertiserCampaignUpdate"/>
        <activity android:name=".Advertiser.ui.main.AdvertiserSettings" />
        <activity android:name=".Creator.CreatorRecentlyChat" />
        <activity android:name=".Advertiser.AdvertiserRecentlyChat" />
        <activity android:name=".Advertiser.AdvertiserChatActivity" />
        <activity android:name=".Creator.CreatorChatActivity" />

        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="@string/app_id" />

        <activity android:name=".Creator.CreatorUserDetails" />
        <activity android:name=".Creator.CreatorList" />
        <activity android:name=".Common.AboutUs" />
        <activity
            android:name=".AdvertiserHome"
            android:label="@string/title_activity_advertiser_home"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".Advertiser.AdvertiserLoginRegister"
            android:label="@string/title_activity_advertiser_login_register"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity android:name=".Common.PrivacyPolicy" />
        <activity android:name=".Common.ChangePassword" />
        <activity android:name=".Creator.CreatorSettings" />
        <activity android:name=".Common.ChangeEmail" />
        <activity android:name=".Advertiser.AdvertiserUserDetails" />
        <activity android:name=".Advertiser.AdvertiserList" />
        <activity
            android:name=".CreatorHome"
            android:label="@string/title_activity_creator_home"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".Creator.CreatorLoginRegister"
            android:label="@string/title_activity_creator_login_register"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity android:name=".AdvertiserCreatorChooser" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />
    </application>

</manifest>

dipendenza

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    implementation 'com.google.android.material:material:1.2.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    implementation 'com.google.firebase:firebase-database:19.4.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.navigation:navigation-fragment:2.3.0'
    implementation 'androidx.navigation:navigation-ui:2.3.0'
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation 'com.google.firebase:firebase-auth:19.3.2'
    implementation 'com.google.firebase:firebase-database:19.4.0'
    implementation 'com.firebaseui:firebase-ui-database:6.2.0'
    implementation 'com.google.android.gms:play-services-ads:19.3.0'
    implementation 'com.android.support:multidex:2.0.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'
    implementation 'com.google.firebase:firebase-messaging:20.2.4'
    implementation 'com.facebook.android:audience-network-sdk:5.10.1'
}

Risposte

Jagar Sep 03 2020 at 17:46

Modifica
DatabaseReference databaseReference =FirebaseDatabase.getInstance().getReference("Version");
Per
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Version");

WebRooseDevelopment Sep 04 2020 at 00:01

E il vero problema era con Firebase Database

Controlla l'immagine sotto con il database Firebase