Saya telah menyepadukan pemberitahuan FCM (Firebase Cloud Messaging) dengan projek Laravel saya.
Saya di User
模型中添加了方法 routeNotificationForFcm
.
Sistem pemberitahuan berfungsi dengan baik apabila menentukan token peranti firebase secara langsung dalam kaedah, tetapi gagal apabila mengakses token daripada pangkalan data.
Kod kerja yang ditambah adalah seperti berikut.
public function routeNotificationForFcm() { return ['dJQqgKlETpqCB3uxHtfUbL:APA91bFdrcXZMNH0iMjkXMoop_b_nI3xF92DU0P1nrHVQsTDK4w-OH5QR6BsnWIV-wSxSV7avzuBmLVizNyrRcKfAQz6H66JEP9rWKUeIi7m7wEZwRiuW_WdCW_LaZajdFZlxfCUonCL']; }
Kod yang tidak berfungsi adalah seperti berikut (pertanyaan pangkalan data)
public function routeNotificationForFcm() { return $this->from('fcm_tokens')->where('user_id', $user->id)->pluck('device_token'); }
Mesej ralat yang dipaparkan ialah Token pendaftaran bukan token pendaftaran FCM yang sah
Mengikut Laravel dokumentasi pluck kembalikan
pada pertanyaan/collection dan kemudian panggilCollection
Collection
- 所以你只需要在查询/集合上调用pluck
后调用toArray()
即可返回数组
- jadi anda hanya perlu memanggilpluck
toArray()
untuk mengembalikan
Anda juga memanggilarray
$user->id
, itu sahaja Seperti yang anda lakukan sebelum ini dengan token olok-olok.$this
$user->id
, tetapi tidak dalam skop ini. Penyelesaiannya mudah, anda perlu lulus nilai atau dapatkan nilai daripada
.$this
FcmToken
Tetapi saya secara peribadi mengesyorkan anda untuk menentukan hubungan yang berasingan untuk iniUser
模型的相关令牌的array
FcmToken
- Hanya tekaan tentang cara anda menamakan model anda. Anda kemudian boleh menggunakannya semula seperti ini untuk mengembalikanarray🎜 token berkaitan untuk model
User🎜 tertentu
🎜Akhir sekali, jika anda menstruktur kod anda seperti ini, anda akan mempunyai perhubungan umum dan menggunakan perhubungan ini untuk menjadikan kod anda lebih fleksibel. 🎜