我只想使用“ functions.auth.user()。onCreate()”事件处理程序访问一次外部One信号服务器。
但是以某种方式,事件运行两次。 有人告诉我我在这里想念的是什么,我该怎么做。
问题代码如下。...
exports.deviceRegister = functions.auth.user().onCreate(event => {
const user = event.uid;
const deviceToken = db.ref(`/Users/${user}/deviceToken`);
// below event seems to be triggered twice
deviceToken.on("value", function(snapshot) {
var request = require("request");
var options = {
method: 'POST',
url: 'https://onesignal.com/api/v1/players',
headers: {
'cache-control': 'no-cache',
'Content-Type': 'application/json'
},
body: {
app_id: '**************42249fa65d',
identifier: snapshot.val(),
language: 'en',
timezone: -28800,
game_version: '1.0',
device_os: '7.0.4',
device_type: 0,
device_model: 'iPhone',
tags: { a: '1', foo: 'bar' }
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
// this console.log runs twice
console.log(body);
});
},
function(errorObject) {
console.log("The read failed: " + errorObject.code);
});
})
非常感谢您的帮助和支持。