我尝试将用户ID从网址传递到webview
,但如果有人获得用户ID,那么会出现安全问题,然后他们就可以将数据发布到firebase中。
还有其他方法可以将会话转移到webview
吗?
我目前的代码:
if (firebaseAuth.getCurrentUser() == null) {
//closing this activity
finish();
//starting login activity
startActivity(new Intent(this, MainActivity.class));
}else {
final DatabaseReference myref = FirebaseDatabase.getInstance().getReference();
myref.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child("data").exists()){
Toast.makeText(getApplication(),"You have already submitted the form",Toast.LENGTH_LONG).show();
Intent homeActivity = new Intent(getApplicationContext(),Home.class);
startActivity(homeActivity);
finish();
} else {
String userId = firebaseAuth.getInstance().getCurrentUser().getUid();
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebChromeClient(new WebChromeClient());
myWebView.getSettings().setJavaScriptEnabled(true);
// passing url parameters
String url = "https://someurl/?param1=" + userId;
myWebView.loadUrl(url);
Toast.makeText(getApplicationContext(),""+url,Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:0)
到目前为止,使用URL变量是实现此目的的最简单方法。 至于安全性,我不认为这是一个问题。用户ID是不可能猜到的,一些随机的人很难获得它。大多数用户自己甚至不知道自己的用户ID。您还可以尝试向数据库添加安全规则以帮助实施安全性。 你可以在这里阅读更多相关信息......
https://firebase.google.com/docs/database/security/
如果您不想使用这种方法,可以尝试快速谷歌搜索“将JS与原生Android进行通信”,但您可能会发现它有点复杂。