gpt4 book ai didi

java - 如何获得 firebase token ?

转载 作者:行者123 更新时间:2023-12-01 19:38:27 25 4
gpt4 key购买 nike

我正在开发一个通过 FCM 使用通知的测试应用程序。我正在使用 Volley 将数据从设备发送到服务器(WAMP),但 token 始终是空字符串/我编写的默认值。我搜索了互联网,但我仍然不知道为什么 token 没有存储/生成(我是编码新手。)还有一件事:每次我发送 token 时,toast 都会向我显示我在那里写的“好一个”文本,但它也给了我很多 html 代码。这是我的文件:MainActivity.kt

import android.content.Context
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Button
import android.widget.Toast
import com.android.volley.AuthFailureError
import com.android.volley.Request
import com.android.volley.Response
import com.android.volley.toolbox.StringRequest

class MainActivity : AppCompatActivity() {
var url: String = "......"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var button: Button = findViewById(R.id.save_token)
button.setOnClickListener(object : View.OnClickListener{
override fun onClick(v: View?) {
val sharedPreferences =
applicationContext.getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE)
var token: String = sharedPreferences.getString(getString(R.string.FCM_TOKEN),"noToken")
// var token: String = "sss";
val request = object : StringRequest(Request.Method.POST, url,
Response.Listener { response ->
Toast.makeText(this@MainActivity, "Good one $response", Toast.LENGTH_SHORT).show()
Log.i("My success", "" + response)
}, Response.ErrorListener { error ->
Toast.makeText(this@MainActivity, "my error :$error", Toast.LENGTH_LONG).show()
Log.i("My error", "" + error)
// println("Error $error")
}) {
@Throws(AuthFailureError::class)
override fun getParams(): Map<String, String> {

val params = HashMap<String, String>()
params.put("fcm_token", token)

return params
}
}
MySingleton.getmInstance(this@MainActivity).addToRequestQueue(request)
}
})

}
}

FcmInstanceIdService.java

public class FcmInstanceIdService extends FirebaseMessagingService{
@Override
public void onNewToken(String s) {

String recent_token = s;
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF),Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(getString(R.string.FCM_TOKEN), recent_token);
editor.commit();
}
}

这是我从成功 toast 中获得的日志:

2019-06-11 08:48:45.135 5684-5684/com.example.rares.firebaselast D/My success: connection success<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined variable: mysqli_close in C:\wamp64\www\firebase\fcm_insert.php on line <i>7</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0023</td><td bgcolor='#eeeeec' align='right'>402152</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp64\www\firebase\fcm_insert.php' bgcolor='#eeeeec'>...\fcm_insert.php<b>:</b>0</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error xe-uncaught-exception' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Uncaught Error: Function name must be a string in C:\wamp64\www\firebase\fcm_insert.php on line <i>7</i></th></tr>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Error: Function name must be a string in C:\wamp64\www\firebase\fcm_insert.php on line <i>7</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0023</td><td bgcolor='#eeeeec' align='right'>402152</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp64\www\firebase\fcm_insert.php' bgcolor='#eeeeec'>...\fcm_insert.php<b>:</b>0</td></tr>
</table></font>

最佳答案

//Get Firebase FCM token
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(activity, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String token = instanceIdResult.getToken();

}
});

将此代码放入您的第一个 Activity 的 onCreate 方法中以获取 FCM token 。您可以将其保存在全局变量中

关于java - 如何获得 firebase token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56537233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com