将数据从Firebase数据库检索到Android中的webView

时间:2017-09-03 05:48:16

标签: android firebase webview firebase-realtime-database android-webview

我正在使用 webView Firebase 构建一个应用程序作为数据库,我已经正确实现了这两个问题,但问题是我的webView 没有检索来自Firebase数据库的任何数据,当我打开应用程序时显示为空白,我已经通过直接添加 URL 检查了webView,它显示了网页,但是当我在Firebase中使用它时它没有显示任何内容,请帮助解决这个问题。

  

我正在使用Android Studio

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 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和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;
    }
}

Firebase规则: enter image description here

适用于webView的Firebase数据库结构

enter image description here

1 个答案:

答案 0 :(得分:1)

您的代码有效。我很确定唯一的问题是Firebase数据库规则。

在Firebase中更改数据库规则,一切正常。

enter image description here