我正在尝试构建一个调用类似于以下内容的JSP页面的Servlet:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
req.getRequestDispatcher("/WEB-INF/main.jsp").forward(req, resp);
}
Run Code Online (Sandbox Code Playgroud)
我需要这个Servlet来响应域的根(例如:http://example.com/)所以我在web.xml中使用以下映射:
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它匹配一切,所以当调度程序转发到"/WEB-INF/main.jsp"时,这与url-pattern匹配,以便Servlet再次运行.这会产生一个循环,直到它以java.lang.StackOverflowError消失.
如何在不阻止其他脚本运行的情况下匹配根目录?
我想尝试将我的原生android firebase开发保持在最低限度,以便当我准备移植到IOS/web时,我不会在那里做很多事情.
现在firebase的Javascript不允许从Android登录谷歌,这可以从插件中处理.但我坚持的是如何基于Java Android Google登录初始化firebase.
所以这就是我想要实现的目标:
Cordova将Java-Android-Native登录称为google --->基于此,我将如何初始化firebase?
这个插件可以让我本地登录google:https://www.npmjs.com/package/cordova-plugin-googleplus
但我想我需要身份验证令牌?令牌ID?
firebase.auth().signInWithCredential(credential).catch(function(error) {
} else {
console.error(error);
}
});
Run Code Online (Sandbox Code Playgroud)
这可以给我上面要求的东西吗?https://developers.google.com/identity/sign-in/android/sign-in
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
Run Code Online (Sandbox Code Playgroud)
更新1:只想分享更多信息.当用户在Android上通过谷歌登录时,我有以下对象
GoogleSignInAccount
Run Code Online (Sandbox Code Playgroud)
它有public String getIdToken ()&public String getServerAuthCode ()为什么不能用这些来使用JS来验证firebase?
更新2:Faraz提供的答案似乎正在起作用.以下是功能https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithCredential的参考资料signInWithCredential
谢谢您的帮助.
我正在使用这个插件:https://github.com/arnesson/cordova-plugin-firebase我在home.html上有一个按钮,它在home.ts中调用test()函数
public test(): void {
// wrap in the platform.ready && platform.is('cordova')
this.fcm.getToken()
.then((token: any) => {
console.log("token: ", token);
});
this.fcm.onTokenRefresh()
.subscribe((token: any) => {
console.log("token onTokenRefresh: ", token);
});
}
Run Code Online (Sandbox Code Playgroud)
当我在主屏幕时,一切都应该初始化,我应该能够从getToken()函数获取令牌.但是我得到了令牌:在我的console.log中未定义.我没有收到任何错误,日志很干净,即没有关于这个特定插件的错误.
更新1:
import { Firebase } from '@ionic-native/firebase';
constructor(public navCtrl: NavController
, public fcm: Firebase) {
Run Code Online (Sandbox Code Playgroud)
更新2: 尝试这样:cordova插件添加https://github.com/arnesson/cordova-plugin-firebase -变量ANDROID_VERSION = 7.1.0 --save但它仍然为空.
private void getToken(final CallbackContext callbackContext) {
cordova.getThreadPool().execute(new Runnable() {
public void run() {
try {
String token = FirebaseInstanceId.getInstance().getToken();
System.out.println("token: …Run Code Online (Sandbox Code Playgroud) 我正试图将这个例子导入邮递员
curl -s --user 'api:YOUR_API_KEY' \
https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages \
-F from='Excited User <mailgun@YOUR_DOMAIN_NAME>' \
-F to=YOU@YOUR_DOMAIN_NAME \
-F to=bar@example.com \
-F subject='Hello' \
-F text='Testing some Mailgun awesomness!'
Run Code Online (Sandbox Code Playgroud)
请帮我理解-s, - user,-F,那是什么?然后当我尝试导入时,我收到此错误:找到无选项参数.我怎样才能解决这个问题?
我已按照此处列出的所有步骤操作:https: //firebase.google.com/docs/auth/web/cordova,验证了所有信息,但我仍然收到以下错误消息.
code: "auth/redirect-cancelled-by-user", message: "The redirect operation has been cancelled by the user before finalizing."
Run Code Online (Sandbox Code Playgroud)
以下是我如何调用谷歌登录:
consturctor public afAuth: AngularFireAuth.夫妻相关进口产品是:
import * as firebase from 'firebase/app';
import { AngularFireAuth } from 'angularfire2/auth';
// signInWithGoogle.
signInWithGoogle(): void {
this.showLoading();
if (this.platform.is('android')) {
console.log("android");
this.provider = new firebase.auth.GoogleAuthProvider();
this.afAuth.auth.signInWithRedirect(this.provider)
.then(function () {
return firebase.auth().getRedirectResult();
})
.then((result: any) => {
if (result) {
this.handleUser(result);
}
})
.catch((error: any) => {
this.hideLoading();
var …Run Code Online (Sandbox Code Playgroud)