0

Je construis une application avec webView et Firebase comme base de données, j'ai correctement mis en œuvre à la fois, mais le problème est que mon webView est pas récupérer toutes les données de base de données Firebase et montre le vide quand j'ouvre l'application, j'ai vérifié le WebView en ajoutant URL directement et il montre la page Web mais il ne montre rien quand je l'emploie avec Firebase, aidez svp à trier cette chose dehors.Récupération de données base de données Firebase à webView dans Android

Je suis Android Studio

fichier de classe WebView:

public class webViewNews extends AppCompatActivity { 

    private WebView webviewthis; 
    private RecyclerView webVieRes; 
    private DatabaseReference mdataRef; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webview_page); 
     mdataRef = FirebaseDatabase.getInstance().getReference().child("weber"); 
     webviewthis = (WebView)findViewById(R.id.webView_news); 
     webviewthis.setWebViewClient(new WebViewClient()); 
     webviewthis.getSettings().setJavaScriptEnabled(true); 
     webviewthis.getSettings().setLoadsImagesAutomatically(true); 
     mdataRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
      post2web webView = dataSnapshot.getValue(post2web.class); 
       webviewthis.loadUrl(webView); 
      } 
      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

    } 
} 

webView fichier xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <WebView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/webView_news"/> 

    </LinearLayout> 

getter et fichier de classe setter:

public class post2web { 
    private String webViewPost; 


    public post2web(){ 
    } 

    public post2web(String webViewPost) { 
     this.webViewPost = webViewPost; 
    } 


    public String getWebViewPost() { 
     return webViewPost; 
    } 

    public void setWebViewPost(String webViewPost) { 
     this.webViewPost = webViewPost; 
    } 
} 

règles Firebase: enter image description here

Firebase structure de base de données pour webView

enter image description here

+0

Vous devriez faire 'webviewthis.loadUrl (webView.getWebViewPost());' –

+0

@MarianoCordoba essayé déjà, mais cela ne fonctionne pas :( –

+0

Êtes-vous autorisé à accéder à la base de données Firebase Vérifiez vos règles? . –

Répondre

1

Votre code fonctionne. Je suis presque sûr que le seul problème sont les règles de base de données Firebase. Modifiez vos règles de base de données dans Firebase et tout fonctionnera.

enter image description here

+0

devinez mes règles sont d'accord, je vais le poster ci-dessus s'il vous plaît vérifier –

+0

Avec ces règles vous besoin d'être authentifié pour accéder à la base de données. Êtes-vous authentifié? Si ce n'est pas le cas, utilisez ces règles et réessayez. –

+0

oui je suis authentifié –