I aim to have a databse trigger such that when there is a change in the "Players" databse node, there will be a corresponding set () function at a different firebase node called users.
Below is the cloud function I have been working on:
const functions = require('firebase-functions');
// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.update = functions.database.ref('/Player')
.onWrite(event=>{
console.log(event.data);
var ref = admin.database().ref(`/users/{user.uid}/week1`);
ref.set(10);
return;
});
The issue is that the cloud function returns the error:
Error: Firebase.child failed: First argument was an invalid path: "/users/{user.uid}/week1". Paths must be non-empty strings...
There are multiple users as follows so is there a way I can access what the user uid will be for each user and refer to this within me cloud function?:
users: {
user uid (generated by push) : {
deviceToken : "tokenID",
name : "Display Name"
},
anotherUserID : {
deviceToken : "tokenID",
name : "Display Name"
}
The Players node is as follows :
{
"players" : [
{"name" : "Yasin 'YB' Amusan",
"Team" : "Industry",
"price": 8000000,
"position": "forward",
"image":"http://res.cloudinary.com/deji/image/upload/v1489787662/blank_photo_mqvivv.png",
"goals": 0,
"assists" : 0,
"Y" : 0,
"R" : 0},
{"name" : "Hassan 'Hasi' Akinyera",
"Team" : "Industry",
"price": 5000000,
"position": "defender",
"image":"http://res.cloudinary.com/deji/image/upload/v1489787662/blank_photo_mqvivv.png",
"goals": 0,
"assists" : 0,
"Y" : 0,
"R" : 0},
{"name" : "Femi 'Fabio' Awoniyi",
"Team" : "Industry",
"price": 9000000,
"position": "defender",
"image":"http://res.cloudinary.com/deji/image/upload/v1489787662/blank_photo_mqvivv.png",
"goals": 0,
"assists" : 0,
"Y" : 0,
"R" : 0},
{"name" : "Deji 'Dej' Awoniyi",
"Team" : "Industry",
"price": 7000000,
"position": "forward",
"image":"http://res.cloudinary.com/deji/image/upload/v1489787662/blank_photo_mqvivv.png",
"goals": 0,
"assists" : 0,
"Y" : 0,
"R" : 0},
{"name" : "Koye 'K10' Kekere-Ekun",
"Team" : "Industry",
"price": 9000000,
"position":"midfielder",
"image":"http://res.cloudinary.com/deji/image/upload/v1489787662/blank_photo_mqvivv.png",
"goals": 0,
"assists" : 0,
"Y" : 0,
"R" : 0},
{"name" : "Teni 'Teezee' Zacchaeus",
"Team" : "Industry",
"price": 6000000,
"position":"hybrid",
"image":"http://res.cloudinary.com/deji/image/upload/v1489787662/blank_photo_mqvivv.png",
"goals": 0,
"assists" : 0,
"Y" : 0,
"R" : 0},
{"name" : "Bolaji 'Boj' Odojukan",
"Team" : "Industry",
"price": 7000000,
"position":"forward",
"image":"http://res.cloudinary.com/deji/image/upload/v1489787662/blank_photo_mqvivv.png",
"goals": 0,
"assists" : 0,
"Y" : 0,
"R" : 0},
{"name" : "Ernest",
"Team" : "Industry",
"price": 6000000,
"position":"defender"
}
/Player, so there is no concept on auser.uid. What does thePlayernode look like? - Frank van Puffelen/users/{user.uid}/week1); - Kola Ayanwale