按照这个例子,我不断收到错误:
TypeError: firebase.storage is not a function
Run Code Online (Sandbox Code Playgroud)
从我的代码中的这一行:
var storageRef = firebase.storage().ref();
Run Code Online (Sandbox Code Playgroud)
(当我只是尝试从存储指南初始化存储时,从firebase的npm站点链接,我得到同样的错误.)
在我的Node.js项目中,我包括以下库:
const firebase = require('firebase');var admin = require('firebase-admin');const fs = require('fs');到目前为止,我已经成功地读取并写入了firebase数据库,创建了对数据库的引用var db = admin.database(),然后var ref = db.ref("/")......所以我知道我已经正确配置了Firebase和firebase-database.但是我卡上storage,并试图既admin.storage().ref()和firebase.storage().ref(),并firebase.storage().ref("/")用相同的错误消息.
我也尝试过:
var storage = firbase.storage();
var storageRef = storage.ref();
Run Code Online (Sandbox Code Playgroud)
和
const app = firebase.initializeApp(config);
var storage = app.storage();
Run Code Online (Sandbox Code Playgroud)
和ref()'s无效的论点()和"/"...但有相同的信息,但无济于事.
我正在使用:
由于我不知道的原因,我无法在macOS上更新到最新版本的npm(它在Windows上运行正常).它没有显示错误,只显示"更新的1个包".
使用Node.js 8.11.1
node -v
v8.11.1
Run Code Online (Sandbox Code Playgroud)
我有什么版本的npm?
$ npm -v
5.6.0
Run Code Online (Sandbox Code Playgroud)
我试过这个......
$ npm i -g npm
+ npm@5.8.0
updated 1 package in 7.37s
Run Code Online (Sandbox Code Playgroud)
它无法更新.
$ npm -v
5.6.0
Run Code Online (Sandbox Code Playgroud)
npm在哪里?
$ which npm
/usr/local/bin/npm
Run Code Online (Sandbox Code Playgroud)
所以我试试brew......
brew install npm
Run Code Online (Sandbox Code Playgroud)
它失败了......
$ npm -v
5.6.0
Run Code Online (Sandbox Code Playgroud)
*然后我尝试了这个......*
npm install npm@latest -g
+ npm@5.8.0
updated 1 package in 7.618s
Run Code Online (Sandbox Code Playgroud)
它失败了......
npm -v
5.6.0
Run Code Online (Sandbox Code Playgroud)
用sudo:
sudo npm i -g npm
+ npm@5.8.0
updated 1 package in 7.794s
Run Code Online (Sandbox Code Playgroud)
它失败了......
npm -v …Run Code Online (Sandbox Code Playgroud) 我正试图在Android工作室跟踪TODO.
有没有办法将它们标记为"完整"而不是简单地删除它们?
没有询问有关<string>标准库的整体用于微控制器.
我还没有拥有一个Arduino板来执行代码,正如标题所说,我很好奇是否在Arduino上完全支持C++标准库并且已经是Arduino IDE的一部分.毫无疑问,标准库可能是最有效,经过充分测试和资源最少的公开可用的C++代码,并且可以让像Arduino这样的微控制器的代码更容易生活.
或者,我是否错过了Arduino /微控制器的观点?那,因为他们的资源是如此有限,大多数代码必须完全针对特定功能,而不是通用或模板化?
如果标准库不是Arduino IDE的一部分,那么我如何包含特定的库,如<algorithm>和<bitset>?
考虑对一个简单的选择排序&mut Vec<&mut String>:
fn selection_sort(collection: &mut Vec<&mut String>) {
for i in 0..collection.len() {
let mut least_element = i;
for j in (i + 1)..collection.len() {
if collection[j] < collection[least_element] {
least_element = j;
}
}
collection.swap(least_element, i);
}
}
Run Code Online (Sandbox Code Playgroud)
fn selection_sort(collection: &mut Vec<&mut String>) {
for i in 0..collection.len() {
let mut least_element = i;
for j in (i + 1)..collection.len() {
if collection[j] < collection[least_element] {
least_element = j;
}
} …Run Code Online (Sandbox Code Playgroud) 我不明白为什么我收到一个错误,指出我的函数与我定义的模板函数不匹配.对我来说,它们看起来完全一样.这是我的调试中的错误:
error: no matching function for call to 'mergesort' newVec = mergesort(vec.begin(),vec.end());
所以我可以学习和编写更好的通用函数和模板,我需要更改什么才能使错误消失?(为了清楚起见,我不是要求我的mergesort算法帮助 - 我知道它有问题,但我会解决它们.)
#include <iostream>
#include <vector>
using namespace std;
template <typename T>
vector<T> mergesort(typename vector<T>::iterator, typename vector<T>::iterator);
int main() {
vector<int> vec{ 50, 5, 40, 10, 30, 15, 20, 20, 10, 25 };
vector<int> newVec;
newVec = mergesort(vec.begin(),vec.end()); //Doesn't match???
cout << "before:";
for (auto x : vec) cout << x << ' '; cout << '\n';
cout << "after :";
for (auto x : …Run Code Online (Sandbox Code Playgroud) 我看到我的 IDE 识别File为 Typescript 对象。在 Google 中进行精细搜索将我带到此页面,该页面与File对象无关。File既不是基本类型也不是高级类型。
FileTypescript 中的对象是否与 Javascript 中的对象处理方式完全相同?是否存在重大差异?
同样,如何在 Typescript 中实例化 File 类型?
C++非常灵活,我想更深入地理解for循环操作.我希望能够很好地比较每个实现以及更好/更快/更高效的实现.另外,学习实现for循环的其他方法也是一种好处 - 而不一定是STL中的某些东西.
我正在寻找专家的答案,而不是意见.请注意我对答案的许多限制:答案仅涉及所提到的特定for循环,它们的局限性(可能不直观),STL中没有的具体替代方案以及特定的增强.
这些其他for循环(不是"传统")如何以不同/更好的方式工作?
其他"非传统"for-loops有哪些局限性?
示例1)传统的for循环是:
for(int i=0;i<SIZE;i++){
//do something for each iteration;
}
Run Code Online (Sandbox Code Playgroud)
例2)现在让我说我有一个得分矢量.
vector<int> scores = {77,91,100,88,85,68,95};
for (auto it = scores.begin(); it != scores.end(); ++it){
//do something for each iteration;
}
Run Code Online (Sandbox Code Playgroud)
例3)相同的得分矢量,不同的循环.
for (auto& x: scores) //do something for each iteration;
Run Code Online (Sandbox Code Playgroud)
我对示例3特别感兴趣,因为它很简单,我不确定它实际上在做什么,但功能与其他两个相同.
如何使用Node.js正确设置Firebase的值事件监听器?
我正在阅读Firebase的文档,并且已成功地从我的Mac和我同时运行的Raspberry Pi连接到同一Firebase数据库的Firebase数据库上更新表格和行 ; 但是,我无法理解我需要对此段做什么才能在值事件上创建一个侦听器:
var starCountRef = firebase.database().ref('posts/' + postId + '/starCount');
starCountRef.on('value', function(snapshot) {
updateStarCount(postElement, snapshot.val());
});
Run Code Online (Sandbox Code Playgroud)
这是显而易见的,我认为我需要以某种方式需要定义postElement基础上,输出:
FIREBASE WARNING: Exception was thrown by user callback. ReferenceError: postElement is not defined
Run Code Online (Sandbox Code Playgroud)
但是,我不知道postElement应该是什么,也不知道如何定义它.救命!
我做了一个非常小的程序和表来简单地更新/更改值.我改变了程序,当它改变了一行时我可以看到控制台输出.
这是我的小型用户数据变量,因此您现在尝试更改的数据很少:
var user = {
id:Number,
name:String,
number:Number
};
var users = [user];
Run Code Online (Sandbox Code Playgroud)
这是我对文档代码的更改,因此我可以在Node.js运行时在控制台输出中看到一些内容:
var userRef = firebase.database().ref('/users/user' + users[0].id);
userRef.on('value', function(snapshot){
firebase.app.updateUserInfo(postElement, snapshot.val());
console.log('Users' + users[0].name + ' changed.');//<- this is the line …Run Code Online (Sandbox Code Playgroud) javascript node.js raspberry-pi firebase firebase-realtime-database
>>> 在Javascript中有一个,但没有<<<...为什么?
(事实上,我不确定任何语言都基于评论.)
我正在尝试制作一个 Google 表格,该表格可以为大型团队在访问时使用其 Gmail 地址自动打开指定的表格。如何在 Apps 脚本中对字符串进行切片?第三行的“email.slice”只是我作为占位符编写的。
function onOpen() {
var email = Session.getActiveUser().getEmail();
var username = email.slice[0:-9];
var ss= SpreadsheetApp.openById(username);
SpreadsheetApp.setActiveSpreadsheet(ss);
}
Run Code Online (Sandbox Code Playgroud) 我看到了这个问题,并注意到一条评论说:
也许你在其中一个向量上走出界限?
我不要求有关索引与[]哪个是出界,这显然是出界的一个元素.从我所知道的,这不是OP所做的.(我可能完全错了.)我没有听说过任何其他与出境有关的案例std::vector.
我被教导使用时矢量被保护免受越界限制.push_back(/*data*/).由于评论员的声誉很高,我的评论来自于知识的深度.该问题中的OP使用.push_back(),再次,我认为这是一个std::vector成员函数,不受出界限制.
std::vector在这方面我是否应该了解一些比C++更专业的人可以解释的东西?
预备要点:我需要做什么改变才能在我的记录中显示正确的头/尾值?
编辑1:一旦有超过1个线程,Record内部的整数数组似乎会填充随机值.
我一直试图调试这几天了.我的代码已完成并完全执行.(众所周知,我是一名学生而不是假装成为一名专业程序员.)
在我的多线程硬币投掷程序中,我试图捕获每个线程中出现头或尾的次数.我正在翻硬币总共100,000,000次.(一亿.)
记录类中数组中的元素没有正确累积.我知道我不需要使用互斥锁,因为每个线程都访问一个独特的线程内存位置.但是线程正在更新错误的值,这不应该发生.
以下是我的调试示例.
下面是完全可执行的代码示例,然后是示例输出.此外,这里还链接到Github上的完整代码:
#include <iostream>
#include <thread>
#include <vector>
#include <mutex>
#include <random>
#include <algorithm>
#include <time.h>
#include <strstream>
#include <random>
using namespace std;
default_random_engine dre;
uniform_int_distribution<int> Tosser(0,1);
struct Record {
Record();
~Record();
int numThreads;
int *heads;
int *tails;
time_t startTime;
time_t stopTime;
time_t duration;
int timesToToss;
};
Record::Record(): numThreads(0), heads(NULL), tails(NULL), startTime(NULL), stopTime(NULL), timesToToss(0){}
Record::~Record() {
startTime = NULL;
stopTime = NULL;
duration = NULL;
timesToToss = NULL;
delete [] heads; …Run Code Online (Sandbox Code Playgroud)