技術情報
- 2021年06月25日
- 技術情報
Laravel 8 Push Notification using Firebase[2]
Here is final part how to do push notification using Firebase.Let’s start it.
Get Firebase Cloud Messaging (FCM) Server Key
This step will show how to get FCM key and Firebase web app’s configuration credentials.
Then firstly go to the Firebase site and we need to create a project.

Then add your notification app name for adding Firebase to web app.

Then copy the Firebase configuration keys, and this will help to connect laravel to Firebase.

Next, go to the project dashboard setting and copy the sever key and paste in HomeController of SERVER_API_KEY variable in sendNotification() function. Next step create the controller and let’s add the key.

Create Route
We need to do some of routes to store token and send push notification so let’s add our routes in web.php.
routes/web.php

Create Controller
Here, we need add saveToken() and sendNotification() method for admin route in HomeController.
app/Http/Controllers/HomeController.php


Then update the home.blade.php



In the final step, we have to create head over to a public folder and create a new firebase-messaging-sw.js file; this file holds the web push notification configurations.
public/firebase-messaging-sw.js

Finally, to see the push notification results we need to execute php artisan serve command. Next we will do register, signed-in and then click on the allow notification button, it will generate the device id, also add push notification title and body in the given form.
we will receive notification as like bellow:

By Ami
asahi at 2021年06月25日 10:00:20
- 2021年06月18日
- 技術情報
Laravel 8 Push Notification using Firebase[1]
Firstly create a new fresh Laravel project using a composer command:
composer create-project laravel/laravel push-notification-app
Then go to the app’s root:
cd push-notification-app/
Database Connection
Secondly, to make a database connection in .env file filling with database name, username, password.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=database_user_name
DB_PASSWORD=database_password
Install Laravel UI Scaffolding
Next, install ui package and create auth scaffolding based on Bootstrap CSS framework.
composer require laravel/ui
After that, need to install to manifest bootstrap auth ui.
php artisan ui bootstrap --auth
You have to suggested commands to compile your fresh scaffolding.
npm install && npm run dev
Update Server Key in User Table
We need to add a new column in the current user table.
php artisan make:migration add_column_device_token
Subsequently, we need to add this device token key in the new table.
class AddColumnDeviceToken extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::table('users', function (Blueprint $table) {
$table->string('device_token')->nullable();
});
}
After that, move the device key to the user table.
class User extends Authenticatable
{
use HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
'device_token'
];
Then type to run migrate execute command.
php artisan migrate
Next week I will show you how to get the Firebase cloud messaging server key and Firebase web app’s configuration credentials.
By Ami
asahi at 2021年06月18日 10:00:02
- 2021年06月07日
- 技術情報
[Laravel] Adding custom data to eloquent result
Sometimes, we want to add more custom data to our eloquent result before passing to blade or doing further logic improvements. Today we will be focusing how to add custom data to our eloquent result.
I assume you already know laravel framework in this article as we will not covering from scratch of laravel framework. First let’s make a posts table. Here is the migration file.
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('description');
$table->timestamps();
});
In our post table, we will have these columns in above. And we gonna add a data record. You can add manually using database clients or you can of course make a seeder class to add dummy data like this
DB::table('posts')->insert([
'name' => Str::random(10),
'description' => Str::random(100),
'created_at' => date('Y-m-d H:i:s'),
]);
Lets go to our controller and select the data with all method and print the result with dd function.
$data = Post::all();
dd($data);
The output will be look like this.

Now , let’s try to add a new column called category_id and user_id to that eloquent results. We can achieve this using map function.
$data = Post::all();
$data->map(function ($result) {
$result->category_id = 1;
$result->user_id = 2;
return $result;
});
dd($data);
And the result will be look like this. Please remember there are two arrays called attributes which is the one we customized and added the data. And there is also original array which contains only original data from eloquent.

Anyhow, we can access our created data using map like always. For further more to customize the eloquent results , please check out here.
dd($data[0]->category_id.','.$data[0]->user_id);
//result -> 1,2
If you need to loop through many data, you can use loop functions but in this case I just added a 0 index to get data easily.
By Yuuma
yuuma at 2021年06月07日 11:10:35
- 2021年06月04日
- 技術情報
How to install Node.js and NPM in your MacOS
Yesterday I wanted to install NPM with package download, such kind of command error message occurred.
Command on found on zsh
Then I try to add new some command, I got it zsh shell command. So this time I would like to share you how to install both Node.js and NPM with MacOs for new terminal.
Prerequisites
Firstly by typing git that will show you command line tools installed.
git
To see what shell your terminal currently is in, from the command line type in:
echo $0
If you’re in the bash shell, you’ll see printed out:
-bash
If you’re in the zsh shell, you’ll see printed out:
-zsh
Switch Your Default Shell To zsh
To switch your shell to the zsh shell, you may enter:
chsh -s /bin/zsh
To switch back to the bash shell, you may enter:
chsh -s /bin/bash
Step by step installation
Make a directory and enter the folder and add this really nifty package manager for zsh called antigen.zsh
curl -L git.io/antigen > antigen.zsh
Now we’re going to configure our .zshrc file:
nano ~/.zshrc
Then you’ll want to write such kind of .zshrc file:

Then restart your terminal. Now you can finally install Node.js and NPM with a single line using nvm!
nvm install --lts
I hope you have found this useful.
By Ami
asahi at 2021年06月04日 10:00:17
- 2021年05月31日
- 技術情報
Serverless
Have you heard about serverless architecture ? Well it doesn’t mean there is no server for your code. Technically serverless is a framework or architecture to save the expensive server costs. Lets see how it does.
As we all know, a server is a computer where an application is deployed. Most developers deploy their code on a remote server where someone else takes care of hardware and software maintenance. That is what most of us are doing. At this point, servers could be expensive even for small projects, it can be a big impact. Your server must be running 24 hours a day to be able to handle requests at any time.
As I said in above, serverless does not mean there is no server. The serverless infrastructure runs on someone else’s managed server. This means you don’t have to worry about maintenance, network security, or uptime. And we only have to pay when our code is being executed which means it will only charged for the amount of time and memory used.
We all know horizontal & vertical scaling when it comes to handling the traffic from users. Both of the options can be expensive, isn’t it ? Well in serverless, you can scale to millions of requests. No new infrastructure required! There is no need to add new servers.
Well, that is all for now. You can try it out serverless in below services.
Although it is powerful to scale up your application with more affordable cost, there might be some drawback also. For example, caching and debugging can be tricky. And of course, you have to learn the new tools to configure it which can be tricky as well.
Yuuma
yuuma at 2021年05月31日 11:00:55