我正在尝试以编程方式更改页面使用browserHistory.push.在我的一个组件中,但不在我嵌入在那个组件中的组件中.
有谁知道为什么我的项目只是为子组件而不是父组件抛出错误?
无法读取undefined属性'push'
父组件
import React, {Component} from 'react';
import { browserHistory } from 'react-router';
import ChildView from './ChildView';
class ParentView extends Component {
constructor(props) {
super(props);
this.addEvent = this.addEvent.bind(this);
}
changePage() {
this.props.history.push("/someNewPage");
}
render() {
return (
<div>
<div>
<button onClick={this.changePage}>Go to a New Page!</button>
</div>
<ChildView /> // this is the child component where this.props.history.push doesn't work
</div>
);
}
}
function mapStateToProps(state) {
return {
user: state.user
};
}
function matchDispatchToProps(dispatch) {
return bindActionCreators({ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用CocoaPods(根据文档建议)将我的Swift项目更新到Firebase的新SDK版本4.0.0,但即使我按照文档中的步骤操作,似乎也没有安装更新的SDK .
任何人都可以帮助我理解为什么这不起作用以及我可以做些什么来更新到新的Firebase SDK?
我的Podfile
# Uncomment this line to define a global platform for your project
platform :ios, '9.2'
# Uncomment this line if you're using Swift
use_frameworks!
target 'myProject' do
pod 'Firebase'
pod 'Firebase/Auth'
pod 'Firebase/Core'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'Firebase/Crash'
pod 'Firebase/Messaging'
pod 'Alamofire', '~> 4.4'
end
Run Code Online (Sandbox Code Playgroud)
当我运行时,pod install我得到了这个看似有希望的输出(除了它不是版本4,因为我认为它应该是):
Analyzing dependencies
Downloading dependencies
Using Alamofire (4.4.0)
Installing Firebase 3.17.0 (was 3.17.0)
Using FirebaseAnalytics (3.9.0) …Run Code Online (Sandbox Code Playgroud) 我确定这只是一个我错过的一个简单的愚蠢错误,但任何人都可以告诉我为什么3要归还而不是[{ "method": 'popup', "minutes": ''}, {"method": 'email', "minutes": '10'}, {"method": 'popup', "minutes": '20'}];?
我做了一个jsfiddle所以你也可以看到:https://jsfiddle.net/qk10arb0/3/
HTML
<p>Click the button to add a new element to the array.</p>
<button onclick="addNewReminder()">Try it</button>
<p id="demo"></p>
Run Code Online (Sandbox Code Playgroud)
使用Javascript
function addNewReminder(){
var newReminder = {
"method": 'popup',
"minutes": '20'
};
var reminders = [{
"method": 'popup',
"minutes": ''
}, {
"method": 'email',
"minutes": '10'
}];
reminders = reminders.push(newReminder);
document.getElementById("demo").innerHTML = reminders;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!!
离开项目一段时间后,我将其打开并尝试再次运行,但失败并显示以下错误。同样的错误似乎发生在多个项目中。
错误:
03-12 15:54:07.172 2431-2431/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myname.myproject, PID: 2431
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/appcompat/R$drawable;
at android.support.v7.widget.AppCompatDrawableManager.<clinit>(AppCompatDrawableManager.java:107)
at android.support.v7.widget.AppCompatDrawableManager.get(AppCompatDrawableManager.java:84)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:85)
at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:128)
at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:149)
at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:29)
at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:54)
at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:31)
at android.support.v7.app.AppCompatDelegateImplN.<init>(AppCompatDelegateImplN.java:31)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:198)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183)
at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:70)
at com.myname.myproject.LoginOrSignUp.LaunchPage.onCreate(LaunchPage.java:27)
at android.app.Activity.performCreate(Activity.java:6999)
at android.app.Activity.performCreate(Activity.java:6990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.ClassNotFoundException: Didn't find class …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用FCM令牌从firebase通知控制台向特定设备发送简单的推送通知.firebase通知控制台将通知显示为已发送但设备未收到通知.我已经尝试发送通知,然后等待查看控制台是否记录didReceiveRemoteNotification,但通知需要花费太长时间(小时)才能显示为在firebase控制台中发送(即使我将优先级设置为high).
App代表
import UIKit
import Firebase
import FirebaseStorage
import FirebaseDatabase
import FirebaseMessaging
import CoreData
import UserNotifications
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// Use Firebase library to configure APIs
FirebaseApp.configure()
/////
// For Firebase Cloud Messaging (FCM)
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = …Run Code Online (Sandbox Code Playgroud) ios firebase swift firebase-cloud-messaging firebase-notifications
我在我的 firebase 云函数文件中创建了以下函数:
function whatsMyName(name) {
return "your name is " + name
}
Run Code Online (Sandbox Code Playgroud)
当我运行在命令行中输入以下,则该功能被部署:
firebase deploy --only functions
Run Code Online (Sandbox Code Playgroud)
但是,这部署了我的所有功能。我只想部署该whatsMyName功能。通常,如果我有一个导出的函数,如下所示:
exports.someExportedFunction = functions.https.onRequest((req, res) => {
// do some stuff
}
Run Code Online (Sandbox Code Playgroud)
然后我可以运行以下命令来部署导出的函数:
firebase deploy --only functions:someExportedFunction
Run Code Online (Sandbox Code Playgroud)
但是,当我运行以下命令时,未部署非导出函数:
firebase deploy --only functions:whatsMyName
Run Code Online (Sandbox Code Playgroud)
有谁明白为什么这不单独部署我的非导出函数whatsMyName,以及如何为 Firebase Cloud Functions 部署非导出函数?
我正在为使用 firebase 的用户创建一个帐户。创建帐户后,我重定向到主页,它检查我是否登录。奇怪的是,我没有登录。
在创建帐户页面上:
createAccount() {
firebaseAuth().createUserWithEmailAndPassword(this.state.email, this.state.password).then((user) => {
// write some data to database
firebase.database().ref().child('users').child(user.uid).child('someKey').set(this.state.email).then(function() {
// send email verification
user.sendEmailVerification().then(function() {
console.log("sent email verification");
// Go to home page
this.props.history.push('/home');
}.bind(this)).catch(function(error) {
console.log("Error: account created but no verification email sent.");
}.bind(this));
}.bind(this)).catch((error) => {
console.log('Error: while writing to database');
});
// catch any error while creating user
}).catch((error) => {
console.log('Error: while creating account');
});
}
Run Code Online (Sandbox Code Playgroud)
在主页上:
componentDidMount() {
firebase.auth().onAuthStateChanged(function (user) {
if (!user) {
console.log("no user …Run Code Online (Sandbox Code Playgroud) javascript firebase reactjs react-router firebase-authentication
我有一个网络应用程序,其中包含嵌入的谷歌日历.我现在想在我的Android应用程序中的WebView中的WebView中加载此Web应用程序.为了显示日历,用户必须按下打开Google Auth弹出窗口的按钮才能授权我拉取Google日历.这适用于桌面,iOS(浏览器和WebView)和Android(浏览器但不是 WebView),但Google日历登录/验证屏幕不会显示在Android WebView中.
我的活动(在Android中):
public class WebView extends AppCompatActivity {
android.webkit.WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
myWebView = (android.webkit.WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
////
// ISSUE: I expected one of these to allow the popup screen to show
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
webSettings.setAllowFileAccess(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setSupportMultipleWindows(true);
// ISSUE^
////
myWebView.loadUrl("https://mywebsite.com/");
}
@Override
protected void onSaveInstanceState(Bundle outState ) {
super.onSaveInstanceState(outState);
myWebView.saveState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) …Run Code Online (Sandbox Code Playgroud) 我想对我们使用 Firebase 的网络应用程序的一项功能进行 A/B 测试。在设置 A/B 测试时,我注意到它要求我选择一个“应用程序”(我也有一个本机应用程序),但我正在尝试定位使用我的网络应用程序的用户。
我能想到的一种解决方法是:
有没有办法为 Web 应用程序运行 Firebase A/B 测试实验 ?(不是本机应用程序)
我正在尝试在 ReactJS 项目中设置 Appcues,并且文档指出添加以下内容以识别当前用户:
Appcues.identify({UNIQUE_USER_ID}, { // Unique identifier for current user
name: "John Doe", // Current user's name
email: "john.doe@example.com", // Current user's email
created_at: 1234567890, // Unix timestamp of user signup date
});
Run Code Online (Sandbox Code Playgroud)
但是,这会引发以下错误:
'Appcues' 未定义
这个错误对我来说很有意义,因为对象Appcues, 被引用但没有导入或创建。
尝试修复:
由于 Appcues 是从脚本导入的,我尝试Appcues通过访问window,但是当我在浏览器中转到我的项目时,它导致我的演示没有被加载:
window.Appcues.identify({UNIQUE_USER_ID}, { // Unique identifier for current user
name: "John Doe", // Current user's name
email: "john.doe@example.com", // Current user's email
created_at: 1234567890, // Unix timestamp …Run Code Online (Sandbox Code Playgroud)